Skip to content

Commit d713374

Browse files
authored
[KUNLUNXIN] Speed Up exp (#1219)
1 parent a411aa8 commit d713374

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/flag_gems/runtime/backend/_kunlunxin/ops/exp.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,25 @@
22

33
import triton
44
import triton.language as tl
5+
from _kunlunxin.utils.codegen_config_utils import CodeGenConfig
56

67
from ..utils.pointwise_dynamic import pointwise_dynamic
78

89
logger = logging.getLogger("flag_gems").getChild(__name__.lstrip("."))
910

11+
config_ = CodeGenConfig(
12+
512,
13+
(65536, 65536, 65536),
14+
32,
15+
True,
16+
prefer_1d_tile=True,
17+
buffer_size_limit=4096,
18+
isCloseVectorization=True,
19+
unroll_num=8,
20+
)
1021

11-
@pointwise_dynamic(promotion_methods=[(0, "INT_TO_FLOAT")])
22+
23+
@pointwise_dynamic(promotion_methods=[(0, "INT_TO_FLOAT")], config=config_)
1224
@triton.jit
1325
def exp_func(x):
1426
return tl.exp(x.to(tl.float32))

src/flag_gems/runtime/backend/_kunlunxin/utils/codegen_config_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class CodeGenConfig:
4646
isCloseDtypeConvert: bool = False
4747
isCloseMemoryAsync: bool = True
4848
buffer_size_limit: int = 0
49+
unroll_num: int = 0
4950

5051
def __post_init__(self):
5152
if self.prefer_1d_tile:

src/flag_gems/runtime/backend/_kunlunxin/utils/pointwise_dynamic.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -978,6 +978,8 @@ def gen_kernel_launch(
978978
code.writeline("isCloseMemoryAsync=False,")
979979
if os.getenv("XPU_cmp_nan") == "1":
980980
code.writeline("isOpenCmpNan=True,")
981+
if self.config.unroll_num:
982+
code.writeline(f"unroll_num={self.config.unroll_num},")
981983
code.writeline(")")
982984

983985
def gen_kernel_launch_1d(
@@ -1043,6 +1045,8 @@ def gen_kernel_launch_1d(
10431045
code.writeline("isCloseMemoryAsync=False,")
10441046
if os.getenv("XPU_cmp_nan") == "1":
10451047
code.writeline("isOpenCmpNan=True,")
1048+
if self.config.unroll_num:
1049+
code.writeline(f"unroll_num={self.config.unroll_num},")
10461050
code.writeline(")")
10471051

10481052
def gen_return(self, code: IndentedBuffer):

0 commit comments

Comments
 (0)