Public Docs
【模型量化】深度学习模型量化 & 量化理论 & 各平台的量化过程 & 硬件加速
【TVM】TI关于TVM的使用测试与分析
【LLM&LVM】大模型开源工程思维导图
【北航卓越工程师】《汽车前沿技术导论:智能驾驶》讲义
【工具链】Yocto使用介绍——使用Yocto创建一个树莓派的系统镜像
【工具链】使用ssh+dialog指令设定服务器指定用户仅容器访问
【推理引擎】一篇关于模型推理的详细对比与学习
【推理引擎】关于TVM中的Schedule优化详解(On going)
【LLM微调】使用litgpt进行私有数据集模型微调的测试总结
【TVM】在TVM Relay中创建一个自定义操作符
【STT+LLM+TTS】如何使用语音转文字模型+大预言模型+语音生成模型完成一个类人的语音交互机器人
【RAG】 通过RAG构建垂直领域的LLM Agent的方法探索
【RAG】GraphRAG精读与测试(On going)
【AI Agent】MetaGPT精读与学习
【AI Base】Ilya Sutskever 27篇必读论文分享清单
【Nvidia】Jetson AGX Orin/ Jetson Orin nano 硬件测试调试内容(On going)
【BI/DI】LLM Using in BI Testing Scenario (On going)
【Nvidia】How to Activate a Camera on Nvidia Platform in Details
【RAS-PI】树莓派驱动开发
【行业咨询阅读】关注实时咨询和分析
【mobileye】2024 Driving AI
【mobileye】SDS_Safety_Architecture
【yolo】yolov8测试
【nvidia】Triton server实践
【alibaba】MNN(on updating)
【OpenAI】Triton(on updating)
【CAIS】关于Compound AI Systems的思考
【Nvidia】关于Cuda+Cudnn+TensorRT推理环境
【BEV】BEVDet在各个平台上的执行效率及优化(On Updating)
【Chip】AI在芯片设计和电路设计中的应用
【Chip】ChiPFormer
【Chip】关于布线的学习
【Chip】MaskPlace论文精读与工程复现优化
【gynasium】强化学习初体验
【Cadence】X AI
【transformer】MinGPT开源工程学习
【中间件】针对apollo 10.0中关于cyberRT性能优化的深度解读和思考
【Robotics】调研了解当前机器人开发者套件(on updating)
【Robotics】ROS CON China 2024 文档技术整理与感想总结(上2024.12.7,中2024.12.8,下场外产品)
【algorithm】关于模型、数据与标注规范的平衡问题
【nvidia】DLA的学习了解与使用
【nvidia】构建nvidia嵌入式平台的交叉编译环境(其他环境平台可借鉴)
文档发布于【Feng's Docs】
-
+
首页
【OpenAI】Triton(on updating)
# Links * https://www.eecs.harvard.edu/~htk/publication/2019-mapl-tillet-kung-cox.pdf * https://triton-lang.org/main/index.html * https://github.com/triton-lang/triton # Introduction * Triton的论文在开头肯定了基于CUDA的CuBLAS,CuDNN等库在专业领域的并行计算上做出的巨大贡献。但是想要让开发者编写满足硬件性能要求的专业代码仍然非常困难。基于易用性,性能和开源等三方面考虑,作者提出了Triton Language。 * 基于Roofline模型(An Insightful Visual Performance Model for Multicore Architectures),作者对比了当前CUDA,Auto-TVM,Triton,Plaid-ML等框架的性能,从而展示各个框架的性能对比,以及当前Triton框架的优异表现。整体表现基本处于逼近Roofline模型所定义的性能上线。关于Roofline模型的理解见Annexe2. * 整个triton框架提供了主要四个贡献,第一个是关于Triton-C,对于熟悉和习惯于底层代码的工程师;Triton-IR 基于LLVM的中间表达;Triton-JIT 用于编译Triton-IR的程序到二级制代码;和一些相关的性能实验 * 基于GTX1070上的实验。Triton 作者对比了一些商用库的性能,从矩阵乘法的性能看,cuBLAS和Triton基本上都能做到硬件性能峰值的90%; # Annexe 1. Nvidia CUTLASS https://developer.nvidia.com/blog/cutlass-linear-algebra-cuda/ # Annexe 2. RoofLine https://dl.acm.org/doi/pdf/10.1145/1498765.1498785 《Roofline: An Insightful Visual Performance Model for Multicore Architectures》是关于Roofline模型的经典论文,这个模型提供了一种直观的方法来分析多核架构中的程序性能。 * 多核处理器(multicore architectures)已经成为高性能计算(HPC)领域的主流架构,然而如何最大化利用这些多核处理器的计算能力是一个非常复杂的问题。程序性能的瓶颈通常是由内存带宽(memory bandwidth)或计算能力(compute capability)所决定的。要在多核架构中优化程序性能,开发者需要理解计算和内存之间的关系。 * Roofline模型的核心思想:Roofline模型通过图形化的方式将程序性能的两大主要限制——计算密度(computational intensity)和内存带宽,统一到一个简单的模型中。它的目的是帮助程序员识别出性能瓶颈,从而优化程序的计算性能。在Roofline模型中,横轴代表计算密度(通常用FLOP/Byte表示,即每字节数据能完成的浮点运算数),纵轴代表性能(通常用GFLOP/s,表示每秒执行的浮点运算次数)。这两个维度的组合可以直观地表示出程序在某个硬件架构上的性能表现。计算密度高的程序(比如计算密集型程序)可能会受到处理器的浮点计算能力的限制。计算密度低的程序(比如数据传输密集型程序)往往受限于内存带宽。 * `带宽上限(Bandwidth Ceiling)`:这条线表示系统的内存带宽上限,即每秒可以传输的最大数据量。所有位于这条线以下的点都受到内存带宽的限制。`计算上限(Compute Ceiling)`:这条线表示处理器的最大计算能力。超过这条线的程序无法通过增加计算来提升性能,因为它们已经达到了处理器的极限。The graph is on a log-log scale.  * 通过在Roofline图上找到程序的当前位置,开发者可以很容易地看到其瓶颈是内存带宽还是计算能力,然后有针对性地进行优化。例如,如果程序受限于内存带宽,优化方法可以是减少内存访问或提高计算密度。如果程序受限于计算能力,则可以通过提高并行性或优化算法来提升性能。Roofline模型还可以为硬件设计者和程序员提供优化建议。例如,在某些硬件平台上,可能需要增加缓存或改善数据局部性来提高带宽利用率;而在另外一些平台上,可能需要优化指令调度和并行计算来提升计算能力。
dingfeng
2024年10月28日 11:39
257
0 条评论
转发文档
收藏文档
上一篇
下一篇
评论
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码