Triton(2)——Triton源碼接結構

1 triton 3.0.0 源碼結構

  • triton
    • docs/:項目文檔

    • cmake/:構建配置相關

    • bin/:工具、腳本

    • CmakeLists.txt:cmake 配置文件

    • LSCENSE

    • README.md

    • Pyproject.toml:python 項目配置文件

    • utils/:項目配置文件目錄

    • unittest/:單元測試代碼

    • third_party/:第三方資源

      • amd/
      • f2reduce/
    • test/:測試代碼

    • python/:python 接口代碼

    • lib/:核心邏輯實現,.cc/.cpp,核心功能的具體實現

      • Analysis:相關分析
        • Alias.cpp:內存別名分析
        • Allocation.cpp:共享內存分配相關分析
        • Axisinfo.cpp:軸分析相關
        • Membar.cpp:線程同步、內存屏障相關
      • Conversion:dialect 之間的轉換
        • TritonGPUToLLVM:tritonGPU dialect 降級到 LLVM dialect
        • TritonToTritonGPU:triton dialect 降級到 tritonGPU dialect
      • Dialect:各級中間表示 dialect 的定義,以及在對應 dialect 上進行的優化 pass
        • triton
          • IR:dialect/算子/屬性/類型的定義
          • Transforms:相應中間表示上的優化 pass
            • Combine.cpp:優化 select 和 load 操作的組合
            • ReorderBroadcast.cpp:將通過 broad 和乘法生成的規約操作優化為點積操作
        • tritonGPU
        • TritonNvidiaGPU
      • Target:將 llvm dialect 降級到 llvm ir,為 llvm ir 添加元數據,鏈接外部數學庫
        • LLVMIR
      • Tools:輔助工具頭文件,分析、調試、優化生成的代碼
        CMakeLists.txt
    • include/:核心邏輯定義,核心功能的.h頭文件,提供約定和規范

      • triton
        • Analysis
          • Alias.h
        • Conversion
          • TritonGPUToLLVM
          • TritonToTritonGPU
        • Dialect
          • triton
          • tritonGPU
          • TritonNvidiaGPU
        • Target
          • LLVMIR
        • Tools
      • CMakeLists.txt

      CMakeLists.txt

注:transforms 用于各級 dialect 之上,conversion 用于各級 dialect 之間

編譯流程對應源碼位置:

在這里插入圖片描述

2 常用源碼位置

Triton dialect:

  • OP 定義:include/triton/Dialect/IR/TritonOps.td
    tt.call, tt.func, tt.return, tt.load, tt.store, tt.dot 等 OP
  • 優化 pass:lib/Dialect/Triton/Transforms
    CombineOpsPass, ReorderBroadcastPass, RewriterTensorPointerPass, LoopUnrollPass

triton dialect --> tritonGPU Dialect:
轉換 pass:lib/Conversion/TritonToTritonGPU/TritonToTritonGPUPass.cpp

TritonGPU Dialect:

  • Op 定義:include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td
    async_wait, alloc_tensor, insert_slice_async, convert_Layout 等 OP
  • Layout 屬性定義:include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td
    Blocked Layout, MMA Layout, DotOperand Layout, Slice Layout, Shared Layout
  • 優化 pass:lib/Dialect/TritonGPU/Transforms
    AccelerateMatmul, Coalesce, CombineTensorSelectAndIf

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901974.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React 事件處理基礎

React 中最常見的兩個需求,一個是列表渲染,另一個就是綁定點擊事件。 這一篇就是從最基礎的按鈕點擊開始,分四個階段,逐步理解 React 中事件的寫法和參數傳遞方式。 📍階段一:最簡單的點擊事件 function A…

java的lambda和stream流操作

Lambda 表達式 ≈ 匿名函數 (Lambda接口)函數式接口:傳入Lambda表達作為函數式接口的參數 函數式接口 只能有一個抽象方法的接口 Lambda 表達式必須賦值給一個函數式接口,比如 Java 8 自帶的: 接口名 作用 Functio…

Dify智能體平臺源碼二次開發筆記(6) - 優化知識庫pdf文檔的識別

目錄 前言 新增PdfNewExtractor類 替換ExtractProcessor類 最終結果 前言 dify的1.1.3版本知識庫pdf解析實現使用pypdfium2提取文本,主要存在以下問題: 1. 文本提取能力有限,對表格和圖片支持不足 2. 缺乏專門的中文處理優化 3. 沒有文檔結…

easyExcel單元格合并

環境 java 1.8 easyexcel 3.1.1 實現方式 自定義WriteHandler,實現AbstractMergeStrategy抽象類,實現merge 方法完成自定義的合并操作。 本測試代碼,實現了eques方法,用于判斷是否需要合并 核心代碼 實現AbstractMergeStrate…

Jenkins 簡易使用記錄

一、Jenkins 核心功能與適用場景 核心功能: 持續集成(CI):自動構建代碼、運行單元測試。持續交付(CD):自動化部署到測試/生產環境。任務調度:定時執行任務(如備份、清理&…

【HFP】藍牙HFP協議音頻連接核心技術深度解析

目錄 一、音頻連接建立的總體要求 1.1 發起主體與時機 1.2 前提條件 1.3 同步連接的建立 1.4 通知機制 二、不同主體發起的音頻連接建立流程 2.1 連接建立觸發矩陣 2.2 AG 發起的音頻連接建立 2.3 HF 發起的音頻連接建立 三、編解碼器連接建立流程 3.1 發起條件 3.…

【卡洛詩】成為平價市場中的標桿西餐廳

近年來,中國餐飲市場在消費分級趨勢下面臨結構性調整,消費者對“質價比”的追求催生了新賽道的崛起。在這一背景下,卡洛詩西餐憑借精準的定位與系統性創新,以“中式西餐”為核心理念,成功打破西餐高價壁壘,…

嵌入式設備網絡的動態ID分配機制實現

文章目錄 前言一、系統設計要點二、核心數據結構2.1 設備唯一標識(DeviceUID)2.2 節點信息(Node)2.3 節點管理器(NodeManager) 三、核心算法實現3.1 初始化與清理3.1.1 初始化節點管理器3.1.2 清理節點管理器 3.2 動態ID分配策略3.2.1 查找最小可用ID3.2.2 ID使用檢查 3.3 心跳…

WebSocket 雙向通信技術詳解

引言 在現代Web應用中,實時通信已經成為不可或缺的一部分。想象一下聊天應用、在線游戲、股票交易平臺或協作工具,這些應用都需要服務器能夠即時將更新推送給客戶端,而不僅僅是等待客戶端請求。WebSocket技術應運而生,它提供了一…

kafka菜鳥教程

一、kafka原理 1、kafka是一個高性能的消息隊列系統,能夠處理大規模的數據流,并提供低延遲的數據傳輸,它能夠以每秒數十萬條消息的速度進行讀寫操作。 二、kafka優點 1、服務解耦 (1)提高系統的可維護性? 通過服務…

SQLMap工具使用

一、SQLMap介紹 SQLMap 是一款強大的開源自動化 SQL 注入工具,用于檢測和利用 Web 應用程序中的 SQL 注入漏洞。其工作原理是SQLMap 通過向目標 URL 發送帶有特殊構造的 SQL 語句的請求,觀察目標應用程序的響應,來判斷是否存在 SQL 注入漏洞…

virtualbox安裝xp系統卡頓的解決

安裝virtualbox的增強功能即可。 先去下載 — Oracle VirtualBox下載 VirtualBox Guest Additions iso鏡像 然后在這里導入iso鏡像 再按照這幾步操作 virtualbox按鍵 強制關閉xp-cuckoo的虛擬機 VBoxManage controlvm "xp-cuckoo" poweroff

觀察者 ? 事件總線:一路走來的碎碎念

寫給未來的自己:每次手敲事件模型都要 Google,干脆把思路和踩坑一次性記清楚。文章很長,都是嘮叨,目的是讓自己看兩眼就能把設計理由找回來。 目錄 為什么我要折騰事件模型?V0 ─ 單一事件的觀察者模式V1 ─ 多事件同步總線(類型拆分)V2 ─ 訂閱者優先級(鏈式調用可控)…

windwos腳本 | 基于scrcpy,只投聲音、只投畫面

安裝scrcpy,scrcpy自帶adb 寫腳本命名為 .bat 結尾 注意這里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替換成scrcpy的安裝目錄 echo off :: 設置UTF-8編碼 chcp 65001 > nul :: 設置標題 title 手機投屏工具:: 添加 scrcpy 路徑到 PATH set &q…

Android device PCO (protocol configuration options) intro

術語 英文縮寫英文全稱中文PCOprotocol configuration options協議配置選項RILradio interface layer 無線電接口層PCO介紹 PCO(Protocol Configuration Options) 是 3GPP 標準協議(TS 24.008)中定義的核心概念,用于在 LTE/5G 網絡建立 PDN 連接時傳遞動態配置參數(如 D…

Spring Boot配置文件優先級全解析:如何優雅覆蓋默認配置?

📚 一、為什么需要了解配置文件優先級? 想象一下,你正在玩一個游戲🎮,游戲里有默認設置,但你可以通過不同的方式修改這些設置: 游戲內置的默認設置(就像Spring Boot的默認配置&…

汽車行駛工況特征參數:從“速度曲線”到“駕駛DNA”的硬核解碼

作為新能源汽車行業的從業者,你是否曾困惑于這些問題: 為什么同一款電動車,不同用戶的實際續航差異高達30%?如何精準量化駕駛行為對電池壽命的影響?車企標定的“NEDC續航”與真實路況差距的根源是什么? 這…

HTTP 2.0 協議特性詳解

1. 使用二進制協議,簡化傳輸的復雜性,提高了效率 2. 支持一個 TCP 鏈接發起多請求,移除 pipeline HTTP/2 移除了 HTTP/1.1中的管道化(pipeline)機制,轉而采用多路復用(Multiplexing&#xff0…

完美解決瀏覽器不能復制的問題(比如賽氪網的中題庫練習題)

僅供復制題庫題目進行打印學習使用! 最近想把賽氪網題庫中的題目打印出來做練習,發現題庫中的題目不能復制,不能在試卷上勾畫標記太難受了,而且不能留作材料以后復習,故出此策。 而且CtrlP打印出的pdf會缺少題目。(我…

std::set (C++)

std::set 1. 概述定義特點 2. 內部實現3. 性能特征4. 常用 API5. 使用示例6. 自定義比較器7. 注意事項與優化8. 使用建議 1. 概述 定義 template<class Key,class Compare std::less<Key>,class Allocator std::allocator<Key> > class std::set;特點 有…