chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

借助NVIDIA CUDA Tile IR后端推進OpenAI Triton的GPU編程

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 2026-02-10 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Jie Xin和Jonathan Bentz

NVIDIA CUDA Tile是基于 GPU編程模型,其設計目標是為 NVIDIA Tensor Cores 提供可移植性,從而釋放 GPU 的極限性能。CUDA Tile 的一大優(yōu)勢是允許開發(fā)者基于其構(gòu)建自定義的 DSL。

本文介紹了 NVIDIA 正在將 CUDA Tile 集成為OpenAI Triton的后端的相關(guān)工作。OpenAI Triton 是一個開源的 Python DSL,專門用于編寫 GPU 上的 DL kernels。它支持分塊計算,可將數(shù)據(jù)與計算任務劃分為較小的 Block。Triton 內(nèi)置基于 MLIR 的編譯器,能夠生成PTX代碼,這使得即使不具備 CUDA 經(jīng)驗的研究人員也能編寫出高效的 GPU 代碼。

什么是CUDA Tile和CUDA Tile IR?

CUDA Tile 是對 CUDA 編程模型的擴展,對 Tile 編程提供原生支持。CUDA Tile 在CUDA 13.1版本首次推出,標志著 GPU 編程的一次重要演進。與要求開發(fā)者基于 SIMT 模型、以單個線程為單位進行思考不同,基于 Tile 的模型可使開發(fā)者在更高抽象層級上表達計算。

開發(fā)者只需操作數(shù)據(jù)塊(即 Tile),編譯器和運行時系統(tǒng)便會自動處理線程調(diào)度、硬件映射與資源分配。這不僅顯著降低了編程復雜度,也為編譯器的大幅優(yōu)化創(chuàng)造了條件。

CUDA Tile IR是基于 MLIR 的中間表示形式及編譯器基礎(chǔ)設施。CUDA Tile 的整個開發(fā)流程由 CUDA Tile IR 規(guī)范驅(qū)動,該規(guī)范明確定義了在 NVIDIA GPU 上進行 Tile 計算所需的形式化語義、操作和類型系統(tǒng)。

什么是Triton-to-TileIR?

Triton-to-TileIR后端是 Triton 的一個橋接層,使其能夠以 CUDA Tile IR(而非 PTX)作為目標代碼。它擴展了 Triton 編譯器生態(tài),使開發(fā)者能將使用 OpenAI Triton 編寫的 GPU kernel 編譯并運行在新推出的 CUDA Tile IR 后端之上,使開發(fā)者無需重寫代碼,便可無縫利用現(xiàn)代硬件能力。

隨著 GPU 編程從傳統(tǒng)的 SIMT 模型演進到基于 Tile 的抽象,這一集成讓開發(fā)者既能保留 Triton 易用的 Python 語法,又能獲得對 Tensor Cores 的原生 TileIR 支持以及更強的架構(gòu)可移植性。

Triton-to-TileIR 降低了這些新能力的使用門檻。值得注意的是,Triton 本質(zhì)上是基于 Tile 的編程語言,其理念是讓開發(fā)者以數(shù)據(jù)塊(即 Tile)為單位計算,而非單個線程。這一設計思想與 CUDA Tile IR 十分契合。

這種一致性使得 Triton 能夠采用一條更直接的后端編譯路徑:Triton-to-TileIR 不再將 Triton 的 Tile 級抽象轉(zhuǎn)換為線程級的 SIMT 代碼,而是保持其 Tile 級語義,并直接編譯至原生支持 Tile 粒度計算的 CUDA Tile IR。

Triton 現(xiàn)有用戶無需學習新語言或重寫代碼,即可體驗 CUDA Tile IR 帶來的性能優(yōu)勢。僅需設置環(huán)境變量,便可將編譯流程從原有的 PTX 后端切換至 CUDA Tile IR 后端,從而獲得更優(yōu)性能與面向未來的架構(gòu)兼容性。

此外,Triton 用戶將能夠根據(jù)每個 kernel 的具體需求,在應用中靈活選擇使用 PTX 后端或 CUDA Tile IR 后端。

Triton-to-TileIR開發(fā)路線圖

Triton-to-TileIR 目前是 triton-lang 團隊下的一個孵化項目,目前正處于積極開發(fā)階段。該代碼庫旨在作為協(xié)作平臺,共同實現(xiàn)并優(yōu)化 CUDA Tile IR 后端,并為其未來并入 Triton 主分支奠定基礎(chǔ)。

其開發(fā)路線圖主要包括以下幾項關(guān)鍵技術(shù)工作流:

核心轉(zhuǎn)換基礎(chǔ)設施:實現(xiàn) MLIR 語言轉(zhuǎn)換機制,將 Triton 操作映射到對應的 CUDA Tile IR 操作。

測試與驗證:構(gòu)建完整的測試套件,以驗證包括控制流、內(nèi)存訪問模式、數(shù)值精度等各類邊緣情況轉(zhuǎn)換過程中的語義正確性。

性能基準測試:設立性能基線,在矩陣乘法、卷積、逐元素操作及規(guī)約等多種操作中,系統(tǒng)性地對比 kernel 分別經(jīng)由 TileIR 與 PTX 編譯后的性能差異。

開源項目集成:與開源社區(qū)緊密協(xié)作,推進 CUDA Tile IR 后端在 Helion 等相關(guān)開源項目中的支持。

如何使用Triton-to-TileIR

目前,Triton-to-TileIR 僅支持從源代碼編譯,暫無預編譯的二進制包,因此您需要在本地自行從源代碼構(gòu)建該項目。

前提條件:

CUDA版本:CUDA 13.1 或更高

GPU架構(gòu):NVIDIA Blackwell架構(gòu) GPU(如GeForce RTX 5080);后續(xù) CUDA 版本預計將增加對早期 GPU 架構(gòu)的支持

從源碼構(gòu)建

在滿足以上條件后,可用以下代碼構(gòu)建項目:

# Clone the repository
git clone https://github.com/triton-lang/Triton-to-tile-IR.git
cd Triton-to-tile-IR
 
# Build and install
# Specific build instructions should be followed according to the project's README
pip install -e .

需要注意的是,具體的構(gòu)建步驟可能隨項目更新而變化??刹殚員riton-to-TileIR README文件與構(gòu)建指南,獲取針對您系統(tǒng)架構(gòu)的詳細配置說明、依賴管理指引及排障方法。

驗證Tile IR編譯

隨后,您可以通過運行向量加法教程,并確認其是否調(diào)用 Tile IR 后端,來驗證安裝是否成功:

# Navigate to the tutorial directory
cd python/tutorials
 
# Run the vector addition example with Tile IR enabled
export ENABLE_TILE=1
python 01-vector-add.py

當 Tile IR 后端處于激活狀態(tài)時,Triton 會使用 .tileIR 文件擴展來緩存編譯后的 kernel,而不是 SIMT 后端所使用的標準 cubin 文件。請檢查以下緩存文件:

# Find the Triton cache directory (typically in ~/.triton/cache)

Triton-to-TileIR的局限性

盡管 Triton-to-TileIR 展現(xiàn)了一定的潛力,但目前仍處于早期開發(fā)階段,對部分操作的支持尚不完善且存在一些臨時性的性能問題。

暫不支持的操作

目前,Tile IR 后端尚未完全覆蓋 Triton 支持的所有操作。建議查閱“當前暫未支持或功能未完全覆蓋的操作清單”。

隨著 CUDA 版本的不斷迭代,Triton CUDA Tile IR 后端也將在兼容性與功能上實現(xiàn)同步增強。

Tensor-of-pointer性能下降

在 CUDA 13.1 的 Tile IR 后端上,Triton 的“tensor-of-pointer”模式(即用 pointer 構(gòu)成的 tensors 來描述內(nèi)存訪問模式)目前性能暫未達到最優(yōu)水平。這是一個暫時性的性能局限。對于受影響的工作負載,可以采取以下措施:

將關(guān)鍵操作暫時切換回 SIMT 后端執(zhí)行

關(guān)注后續(xù)版本更新,相關(guān)問題將在新版本中優(yōu)化

優(yōu)化代碼,改用 TMA load/store API

關(guān)于最后提到的代碼優(yōu)化,許多 kernel 中加載的 tensors 本身具有連續(xù)的 Tile 布局以及明確的形狀和步幅。因此,無需在 kernel 內(nèi)部顯式構(gòu)建 tensor-of-pointers。相反,可以直接將這些布局信息傳遞給 TMA load/store API,從而提升 Tile IR 后端性能。

以下為典型 tensor-of-pointers 模式代碼:

# Before: tensor-of-pointer style
offs_m = pid_m * BLOCK_M + tl.arange(0, BLOCK_M)
offs_n = pid_n * BLOCK_N + tl.arange(0, BLOCK_N)
offs_k = tl.arange(0, BLOCK_K)
 
a_ptrs = a_ptr + (offs_m[:, None] * stride_am
                  + offs_k[None, :] * stride_ak)
b_ptrs = b_ptr + (offs_k[:, None] * stride_bk
                  + offs_n[None, :] * stride_bn)
 
a = tl.load(a_ptrs)
b = tl.load(b_ptrs)

a_ptrs 中的每個元素都是在 kernel 中計算出的顯式 pointer,即使該 Tile 本身是連續(xù)的,并且其布局可以通過(shape,strides,block_shape)完全描述。

使用 TMA,相同的操作可以重寫為:

desc_a = tl.make_tensor_descriptor(
    a,                             # base pointer
    shape=(M, K),
    strides=(stride_am, stride_ak),
    block_shape=(BLOCK_M, BLOCK_K) # tile size
)
desc_b = tl.make_tensor_descriptor(
    b, shape=(K, N),
    strides=(stride_bk, stride_bn),
    block_shape=(BLOCK_K, BLOCK_N)
)
 
 
offs_m = pid_m * BLOCK_M
offs_n = pid_n * BLOCK_N
 
a_tile = desc_a.load([offs_m, 0])       # [BLOCK_M, BLOCK_K]
b_tile = desc_b.load([0, offs_n])       # [BLOCK_K, BLOCK_N]
desc_c.store([offs_m, offs_n], acc)     # TMA-backed store

進一步了解Triton-to-TileIR

Triton-to-TileIR 項目代表了 GPU 編程演進的關(guān)鍵一步,它彌合了開發(fā)生產(chǎn)力與硬件效率之間的差距。通過將 Triton 易用、面向 Tile 的編程模型與 CUDA Tile IR 虛擬指令集連接起來,該集成有望為機器學習從業(yè)者和 GPU 開發(fā)者帶來性能提升、可移植性并為未來做好準備。

TileIR 后端為現(xiàn)有 Triton 開發(fā)者提供了一條平滑的升級路徑,僅需修改極少的代碼即可體驗下一代 GPU 架構(gòu)。同時,它也向更廣闊的 GPU 編程生態(tài)展現(xiàn)了語言設計者與硬件供應商深度協(xié)同的戰(zhàn)略價值:在不犧牲高級抽象快速迭代能力的前提下,更簡單地獲取先進硬件功能。

隨著該項目從孵化階段逐步走向生產(chǎn)就緒,其如何推動 Triton 的采用率、如何重塑基于 Tile 的 GPU 編程范式,將成為值得持續(xù)關(guān)注的焦點。最終的衡量標準也將非常直觀:不具備深厚 GPU 專業(yè)知識的研究人員能否 NVIDIA GPU 上編寫出接近最優(yōu)性能的 Triton 代碼。

如需了解更多詳情,可查閱triton-lang/Triton-to-tile-IR的 GitHub 庫以及《CUDA Tile IR 后端性能調(diào)優(yōu)提示》文檔。

關(guān)于作者

Jie Xin 是 NVIDIA 的計算架構(gòu)師。他畢業(yè)于華中理工大學,主修計算機科學。專注于編譯器、深度學習框架和 GPU 架構(gòu)。

Jonathan Bentz 領(lǐng)導 NVIDIA 的 CUDA 技術(shù)營銷工程團隊,其團隊專注于創(chuàng)建和提供引人入勝的內(nèi)容,并與 CUDA 開發(fā)者建立聯(lián)系。Jonathan 擁有愛荷華州立大學化學博士學位和計算機科學碩士學位。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5191

    瀏覽量

    135401
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97166
  • CUDA
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    14473
  • OpenAI
    +關(guān)注

    關(guān)注

    9

    文章

    1245

    瀏覽量

    10043

原文標題:借助 CUDA Tile IR 后端推進 OpenAI Triton 的 GPU 編程

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【BBuf的CUDA筆記】OpenAI Triton入門筆記一

    這里來看官方的介紹:https://openai.com/research/triton ,從官方的介紹中我們可以看到OpenAI Triton的產(chǎn)生動機以及它的目標是什么,還可以看到
    的頭像 發(fā)表于 01-23 10:00 ?4456次閱讀
    【BBuf的<b class='flag-5'>CUDA</b>筆記】<b class='flag-5'>OpenAI</b> <b class='flag-5'>Triton</b>入門筆記一

    如何在NVIDIA CUDA Tile中編寫高性能矩陣乘法

    本博文是系列課程的一部分,旨在幫助開發(fā)者學習 NVIDIA CUDA Tile 編程,掌握構(gòu)建高性能 GPU 內(nèi)核的方法,并以矩陣乘法作為核
    的頭像 發(fā)表于 01-22 16:43 ?4789次閱讀
    如何在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> <b class='flag-5'>Tile</b>中編寫高性能矩陣乘法

    NVIDIA Tesla K20C K20M K20X 并行計算GPU

    ``提供個人超級計算機解決方案  高性能GPU運算服務器解決方案/集群解決方案  Nvidia Tesla C2050 CUDA核心頻率:1.15 GHz CUDA核心數(shù)量:448  
    發(fā)表于 08-03 18:09

    NVIDIA Tesla K40C K40M 高精密并行計算GPU

    ;amp;quot; 21000 三年質(zhì)保 麗臺盒裝 現(xiàn)貨 Nvidia TeslaK20M &quot;GPU 的數(shù)量和類型:1 Kepler GK110CUDA核心數(shù)量:2496
    發(fā)表于 09-02 21:17

    NVIDIA火熱招聘GPU高性能計算架構(gòu)師

    GPU架構(gòu)設計者提供反饋,以改善和推進未來GPU的架構(gòu)設計基本要求(其一即可): * 嚴謹?shù)倪壿嬎季S和分析能力* 有CUDA代碼調(diào)優(yōu)經(jīng)驗(或者SIMD等架構(gòu)的調(diào)優(yōu)經(jīng)驗)* 熟悉矩陣計算
    發(fā)表于 09-01 17:22

    NVIDIA-SMI:監(jiān)控GPU的絕佳起點

    .com/nvidia-system-management-interface請參閱此鏈接以獲取手冊頁以及要使用的各種開關(guān)/工具:http://developer.download.nvidia.com/compute/cuda
    發(fā)表于 09-04 15:18

    CUDA編程教程

    Nvidia CUDA 2.0編程教程
    發(fā)表于 03-05 07:30

    探求NVIDIA GPU極限性能的利器

    1、探求 NVIDIA GPU 極限性能的利器  在通常的 CUDA 編程中,用戶主要通過 CUDA C/C++ 或 python 語言實現(xiàn)
    發(fā)表于 10-11 14:35

    CUDA簡介: CUDA編程模型概述

    CUDA 編程模型中,線程是進行計算或內(nèi)存操作的最低抽象級別。 從基于 NVIDIA Ampere GPU 架構(gòu)的設備開始,CUDA
    的頭像 發(fā)表于 04-20 17:16 ?4009次閱讀
    <b class='flag-5'>CUDA</b>簡介: <b class='flag-5'>CUDA</b><b class='flag-5'>編程</b>模型概述

    基于NVIDIA Triton的AI模型高效部署實踐

    NVIDIA Triton 推理服務器(以前稱為 TensorRT 推理服務器)是一款開源軟件,可簡化深度學習模型在生產(chǎn)環(huán)境中的部署。借助 Triton 推理服務器,Devops 和
    的頭像 發(fā)表于 06-28 15:49 ?2936次閱讀

    使用CUDA進行編程的要求有哪些

    CUDANVIDIA的一種用于GPU編程的技術(shù),CUDA核心是GPU上的一組小型計算單元,它們
    的頭像 發(fā)表于 01-08 09:20 ?3452次閱讀

    Triton編譯器與GPU編程的結(jié)合應用

    優(yōu)化,以及生成高效的并行執(zhí)行計劃。 GPU編程的挑戰(zhàn) GPU編程面臨的主要挑戰(zhàn)包括: 編程復雜性 :GP
    的頭像 發(fā)表于 12-25 09:13 ?1521次閱讀

    進迭時空同構(gòu)融合RISC-V AI CPU的Triton算子編譯器實踐

    Triton是由OpenAI開發(fā)的一個開源編程語言和編譯器,旨在簡化高性能GPU內(nèi)核的編寫。它提供了類似Python的語法,并通過高級抽象降低了GP
    的頭像 發(fā)表于 07-15 09:04 ?1836次閱讀
    進迭時空同構(gòu)融合RISC-V AI CPU的<b class='flag-5'>Triton</b>算子編譯器實踐

    在Python中借助NVIDIA CUDA Tile簡化GPU編程

    NVIDIA CUDA 13.1 版本新增了基于 TileGPU 編程模式。它是自 CUDA
    的頭像 發(fā)表于 12-13 10:12 ?1185次閱讀
    在Python中<b class='flag-5'>借助</b><b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> <b class='flag-5'>Tile</b>簡化<b class='flag-5'>GPU</b><b class='flag-5'>編程</b>

    NVIDIA CUDA Tile的創(chuàng)新之處、工作原理以及使用方法

    NVIDIA CUDA 13.1 推出 NVIDIA CUDA Tile,這是自 2006 年 NVID
    的頭像 發(fā)表于 12-24 10:17 ?459次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> <b class='flag-5'>Tile</b>的創(chuàng)新之處、工作原理以及使用方法