• bitcoinBitcoin(BTC)$84,294.00-0.06%
  • ethereumEthereum(ETH)$2,691.310.62%
  • tetherTether(USDT)$1.00-0.02%
  • binancecoinBNB(BNB)$778.911.57%
  • rippleXRP(XRP)$1.532.22%
  • usd-coinUSDC(USDC)$1.00-0.01%
  • solanaSolana(SOL)$117.122.37%
  • tronTRON(TRX)$0.3404840.10%
  • zcashZcash(ZEC)$1,551.382.53%
  • Figure HelocFigure Heloc(FIGR_HELOC)$1.040.60%
  • HyperliquidHyperliquid(HYPE)$94.381.05%
  • dogecoinDogecoin(DOGE)$0.0960214.00%
  • moneroMonero(XMR)$549.62-0.18%
  • whitebitWhiteBIT Coin(WBT)$84.39-0.20%
  • chainlinkChainlink(LINK)$13.217.57%
  • USDSUSDS(USDS)$1.00-0.01%
  • cardanoCardano(ADA)$0.2480674.17%
  • RainRain(RAIN)$0.012085-1.49%
  • leo-tokenLEO Token(LEO)$8.96-0.53%
  • stellarStellar(XLM)$0.2123435.17%
  • bitcoin-cashBitcoin Cash(BCH)$336.22-2.13%
  • nearNEAR Protocol(NEAR)$4.787.46%
  • uniswapUniswap(UNI)$9.321.45%
  • litecoinLitecoin(LTC)$71.4917.02%
  • Ethena USDeEthena USDe(USDE)$1.00-0.01%
  • avalanche-2Avalanche(AVAX)$10.451.24%
  • daiDai(DAI)$1.000.00%
  • CantonCanton(CC)$0.1144844.66%
  • USD1USD1(USD1)$1.00-0.02%
  • suiSui(SUI)$1.026.09%
  • hedera-hashgraphHedera(HBAR)$0.0928662.88%
  • the-open-networkGram (prev. Toncoin)(GRAM)$1.421.03%
  • shiba-inuShiba Inu(SHIB)$0.0000063.78%
  • BittensorBittensor(TAO)$297.183.05%
  • Global DollarGlobal Dollar(USDG)$1.000.00%
  • crypto-com-chainCronos(CRO)$0.0635283.91%
  • BitwayBitway(BTW)$1.076.25%
  • MemeCoreMemeCore(M)$1.221.21%
  • paypal-usdPayPal USD(PYUSD)$1.00-0.01%
  • tether-goldTether Gold(XAUT)$4,268.47-0.48%
  • okbOKB(OKB)$119.641.37%
  • OndoOndo(ONDO)$0.5123.88%
  • Circle USYCCircle USYC(USYC)$1.140.01%
  • Ripple USDRipple USD(RLUSD)$1.000.00%
  • BlackRock USD Institutional Digital Liquidity FundBlackRock USD Institutional Digital Liquidity Fund(BUIDL)$1.000.00%
  • Ondo US Dollar YieldOndo US Dollar Yield(USDY)$1.14-0.11%
  • mantleMantle(MNT)$0.684.72%
  • aaveAave(AAVE)$146.235.10%
  • EthenaEthena(ENA)$0.2230557.46%
  • polkadotPolkadot(DOT)$1.176.31%
TradePoint.io
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop
No Result
View All Result
TradePoint.io
No Result
View All Result

Designing High-Performance GPU Kernels with TileLang: Tensor-Core GEMM, Fused Softmax, FlashAttention, and Autotuning

July 25, 2026
in AI & Technology
Reading Time: 3 mins read
A A
Designing High-Performance GPU Kernels with TileLang: Tensor-Core GEMM, Fused Softmax, FlashAttention, and Autotuning
ShareShareShareShareShare

YOU MAY ALSO LIKE

Congressman Calls for National Data Center Strategy

New York Times Cooking Is Coming To Meta’s AI And Display Glasses

@tilelang.jit(out_idx=[-1])
def make_matmul(M: int, N: int, K: int,
               block_M: int = 128, block_N: int = 128, block_K: int = 32,
               num_stages: int = 3, threads: int = 128,
               use_swizzle: bool = False,
               dtype: str = "float16", accum_dtype: str = "float"):
   @T.prim_func
   def main(A: T.Tensor((M, K), dtype),
            B: T.Tensor((K, N), dtype),
            C: T.Tensor((M, N), dtype)):
       with T.Kernel(T.ceildiv(N, block_N),
                     T.ceildiv(M, block_M),
                     threads=threads) as (bx, by):
           A_shared = T.alloc_shared((block_M, block_K), dtype)
           B_shared = T.alloc_shared((block_K, block_N), dtype)
           C_local = T.alloc_fragment((block_M, block_N), accum_dtype)
           if use_swizzle:
               T.use_swizzle(panel_size=10, enable=True)
           T.clear(C_local)
           for ko in T.Pipelined(T.ceildiv(K, block_K), num_stages=num_stages):
               T.copy(A[by * block_M, ko * block_K], A_shared)
               T.copy(B[ko * block_K, bx * block_N], B_shared)
               T.gemm(A_shared, B_shared, C_local)
           T.copy(C_local, C[by * block_M, bx * block_N])
   return main
def smem_bytes(block_M, block_N, block_K, stages, itemsize=2):
   return (block_M * block_K + block_K * block_N) * itemsize * stages
def section_2():
   banner("2. MEMORY HIERARCHY — tiled tensor-core GEMM")
   M = N = K = 2048
   bm, bn, bk, st = 128, 128, 32, DEFAULT_STAGES
   while smem_bytes(bm, bn, bk, st) > SMEM_CAP and st > 1:
       st -= 1
   print(f"   config: {bm}x{bn}x{bk}, num_stages={st}, "
         f"smem={smem_bytes(bm,bn,bk,st)/1024:.0f} KB")
   kernel = make_matmul(M, N, K, bm, bn, bk, num_stages=st, threads=128)
   a = torch.randn(M, K, device=DEV, dtype=torch.float16)
   b = torch.randn(K, N, device=DEV, dtype=torch.float16)
   c = kernel(a, b)
   check(c, a @ b, "matmul 2048^3")
   flops = 2 * M * N * K
   ms = bench(lambda: kernel(a, b))
   ms_ref = bench(lambda: a @ b)
   print(f"   tilelang : {ms:7.3f} ms  ->  {flops/(ms*1e-3)/1e12:6.2f} TFLOP/s")
   print(f"   cuBLAS   : {ms_ref:7.3f} ms  ->  {flops/(ms_ref*1e-3)/1e12:6.2f} TFLOP/s")
   print(f"   ratio    : {ms_ref/ms*100:5.1f}% of cuBLAS from ~20 lines of Python")
   src = kernel.get_kernel_source()
   for needle in ("mma.sync", "wgmma", "ldmatrix", "cp.async", "tl::gemm"):
       if needle in src:
           print(f"   emitted: {needle}")
   return kernel
def section_3():
   banner("3. KNOBS — sweeping the schedule by hand")
   M = N = K = 2048
   a = torch.randn(M, K, device=DEV, dtype=torch.float16)
   b = torch.randn(K, N, device=DEV, dtype=torch.float16)
   flops = 2 * M * N * K
   candidates = [
       (64,  64,  32, 2, 128, False),
       (128, 128, 32, 2, 128, False),
       (128, 128, 32, 2, 128, True),
       (128, 128, 32, 3, 128, False),
       (128, 128, 64, 2, 256, False),
       (128, 256, 32, 2, 256, False),
   ]
   print(f"   {'tile':>16} {'stg':>4} {'thr':>4} {'swz':>4} {'smem':>7} "
         f"{'ms':>8} {'TFLOP/s':>9}")
   results = []
   for bm, bn, bk, st, thr, swz in candidates:
       need = smem_bytes(bm, bn, bk, st)
       tag = f"{bm}x{bn}x{bk}"
       if need > SMEM_CAP:
           print(f"   {tag:>16} {st:>4} {thr:>4} {str(swz):>4} {need//1024:>5}KB "
                 f"  SKIPPED (over smem budget)")
           continue
       try:
           k = make_matmul(M, N, K, bm, bn, bk, num_stages=st,
                           threads=thr, use_swizzle=swz)
           c = k(a, b)
           ok = (c - (a @ b)).float().norm() / (a @ b).float().norm() < 2e-2
           ms = bench(lambda: k(a, b), warmup=5, rep=20)
           results.append((ms, tag, st, thr, swz))
           print(f"   {tag:>16} {st:>4} {thr:>4} {str(swz):>4} {need//1024:>5}KB "
                 f"{ms:>8.3f} {flops/(ms*1e-3)/1e12:>9.2f}"
                 f"{'' if ok else '   <- NUMERICALLY WRONG'}")
       except Exception as e:
           print(f"   {tag:>16} {st:>4} {thr:>4} {str(swz):>4}     -  "
                 f"failed: {type(e).__name__}")
   if results:
       best = min(results)
       print(f"\n   winner: {best[1]}, stages={best[2]}, threads={best[3]}, "
             f"swizzle={best[4]}  ({best[0]:.3f} ms)")
   print("   Takeaway: the best schedule is arch- and shape-dependent, which is")
   print("   exactly why section 7 exists.")

Credit: Source link

ShareTweetSendSharePin

Related Posts

Congressman Calls for National Data Center Strategy
AI & Technology

Congressman Calls for National Data Center Strategy

September 24, 2026
New York Times Cooking Is Coming To Meta’s AI And Display Glasses
AI & Technology

New York Times Cooking Is Coming To Meta’s AI And Display Glasses

September 24, 2026
Trump-Xi Summit Puts Global AI Race in Focus
AI & Technology

Trump-Xi Summit Puts Global AI Race in Focus

September 24, 2026
BottleCap AI Releases ThinkingCap-Qwen3.8-27B: 37.2% Fewer Thinking Tokens at a 0.86pp Accuracy Cost
AI & Technology

BottleCap AI Releases ThinkingCap-Qwen3.8-27B: 37.2% Fewer Thinking Tokens at a 0.86pp Accuracy Cost

September 24, 2026
Next Post
Suspects arrested in connection with Texas swimmer’s death

Suspects arrested in connection with Texas swimmer’s death

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

No Result
View All Result
BCB Bancorp: The Recovery Includes Raising Capital And Selling Bad Loans

BCB Bancorp: The Recovery Includes Raising Capital And Selling Bad Loans

September 19, 2026
Fermi Explorer co-founder talks mission to send interstellar spacecraft to neighboring star

Fermi Explorer co-founder talks mission to send interstellar spacecraft to neighboring star

September 19, 2026
Staten Island man struck by lightning and survives

Staten Island man struck by lightning and survives

September 20, 2026

About

Learn more

Our Services

Legal

Privacy Policy

Terms of Use

Bloggers

Learn more

Article Links

Contact

Advertise

Ask us anything

©2020- TradePoint.io - All rights reserved!

Tradepoint.io, being just a publishing and technology platform, is not a registered broker-dealer or investment adviser. So we do not provide investment advice. Rather, brokerage services are provided to clients of Tradepoint.io by independent SEC-registered broker-dealers and members of FINRA/SIPC. Every form of investing carries some risk and past performance is not a guarantee of future results. “Tradepoint.io“, “Instant Investing” and “My Trading Tools” are registered trademarks of Apperbuild, LLC.

This website is operated by Apperbuild, LLC. We have no link to any brokerage firm and we do not provide investment advice. Every information and resource we provide is solely for the education of our readers. © 2020 Apperbuild, LLC. All rights reserved.

No Result
View All Result
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop

© 2023 - TradePoint.io - All Rights Reserved!