OpenAI Triton 初探

这篇具有很好参考价值的文章主要介绍了OpenAI Triton 初探。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Triton 2021年发布了1.0,我在调研GPU使用方法的时候知道了有这个东西,但是当时还不了解OpenAI,觉得这个项目太新太小众,并没有深究。现在GPT大火之后,再回过头看看他们的这个东西。

现在相关文档还是很少,pip安装后发现版本已经默默升到了2.0.0.post1。

Triton的概念模型相较于cuda的模型,把基于Thread的模型扩展为基于block的。我觉得从线性代数的观点来看,就是把基于矩阵元素的粒度,变成了分块矩阵的粒度。

要想把他用好,可能需要复习一下线性代数课程里关于分块矩阵的部分,分块矩阵对于简化问题讨论有很大帮助,理论价值仅限于此。但是对于实际的计算问题来说,分块矩阵就更有用了。在科学计算,计算方法,高性能计算等课程中,经常会把一个大矩阵分块之后放到集群的不同节点上去计算。我认为Triton的思路是类似的。

对于GPU这样的设备,每个SM是有局部缓存的。分块之后,数据可以保存在缓存中,可以大大提高命中率。

对于两个矩阵的乘法

C (M,N) =A (M,K) * B(K,N)

传统的写法是用三重循环

for(int m = 0; m < M; m++)
for(int n = 0; n < N; n++){
  float acc = 0;
  for(int k = 0; k < K; k++)
    acc += A[m, k] * B[k, n];
  C[m, n] = acc;
}

CUDA的做法通常是对c的每个元素分配一个Thread来计算

Triton的做法是分块,然后每个块对应一个program

#pragma parallel
for(int m = 0; m < M; m += MB)
#pragma parallel
for(int n = 0; n < N; n += NB){
  float acc[MB, NB] = 0;
  for(int k = 0; k < K; k += KB)
    acc +=  A[m:m+MB, k:k+KB]
          @ B[k:k+KB, n:n+NB];
  C[m:m+MB, n:n+NB] = acc;
}

伪代码从概念上看非常清晰

官方提供的案例 03-matrix-multiplication ,示例代码有一些问题。

autotune前两个配置在我的卡上有问题,需要注掉

通过help查看triton.testing.do_bench 的 quantiles 参数已经变成percentiles,但是文档还没更新

torch.allclose比对结果,两个矩阵大体相同,只有一个数差距比较大

最后的效果看起来还不错

另外我还试了cupy,结果和cuBLAS那条线是一样的。

最后是我修改后的文件

OpenAI Triton 初探文章来源地址https://www.toymoban.com/news/detail-474839.html

到了这里,关于OpenAI Triton 初探的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 重磅OpenAI发布ChatGPT企业版本

    8月29日凌晨,Open AI官网发布ChatGPT企业版本! 企业版简介: ChatGPT企业版提供企业级安全和隐私、无限的高速 GPT-4 访问、用于处理更长输入的更长上下文窗口、高级数据分析功能、自定义选项等等。人工智能可以协助和提升我们工作生活的各个方面,并使团队更具创造力和生

    2024年02月10日
    浏览(42)
  • OpenAI发布DALL·E 2

     2021年1月,OpenAI推出了DALL·E ,不用跨界也能从文本生成图像,打破了自然语言与视觉次元壁,引起了 AI 圈的一阵欢呼。 时隔一年多后,DALL·E 迎来了升级版本——DALL·E 2。 与 DALL·E 相比,DALL·E 2 在生成用户描述的图像时具有更高的分辨率和更低的延迟。DALL·E 2 以 4 倍的分

    2024年02月11日
    浏览(34)
  • openAI发布v0.2.0了

    时隔20天,OpenAI从v0.0.1升级到了v0.2.0。与v0.0.1版相比,v0.2.0版主要做了以下改动: 把 cmd 目录下微信公众号的相关服务迁移到了这里 完善了 cmd 下的测试服务,针对openAI库里实现的各个接口都提供了响应的调用接口,服务运行后可以通过postman进行测试 完成了Fine-tunes和Moderat

    2024年02月03日
    浏览(47)
  • OpenAI发布ChatGPT企业级版本

    本周一(2023年8月28日)OpenAI 推出了 ChatGPT Enterprise ,这是它在 4 月份推出的以业务为中心的订阅服务。该公司表示,根据新计划,不会使用任何业务数据或对话来训练其人工智能模型。 “我们的模型不会从你的使用情况中学习,”该公司在一篇有关企业功能的公告博客文章

    2024年02月10日
    浏览(45)
  • OpenAI 发布GPT-4——全网抢先体验

    最近 OpenAI 犹如开挂一般,上周才刚刚推出GPT-3.5-Turbo API,今天凌晨再次祭出GPT-4这个目前最先进的多模态预训练大模型。与上一代GPT3.5相比,GPT-4最大的飞跃是增加了识图能力,并且回答准确性也得到显著提高。GPT-4在多个专业和学术基准测试中展现出令人印象深刻的表现,有

    2024年02月02日
    浏览(62)
  • OpenAI全新发布文生视频模型:Sora!

    OpenAI官网原文链接:https://openai.com/research/video-generation-models-as-world-simulators#fn-20      我们探索视频数据生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空Patche

    2024年02月19日
    浏览(43)
  • 重磅!OpenAI正式发布,自定义ChatGPT商店!

    1月11日凌晨,OpenAI在官网正式发布了,自定义GPT商店,可以帮助用户找到目前最好用、流行的自定义ChatGPT助手。 在2024年第一季度,OpenAI将启动GPT 开发者收入计划。 首先,美国地区的开发者将根据用户对其 GPT 的使用情况获得金钱回报 。未来,OpenAI将提供更详细的收入计划

    2024年01月21日
    浏览(44)
  • Android Studio Dolphin | 2021.3.1 发布,快来看看有什么更新吧~

    原文链接 :https://developer.android.com/studio/releases 来了来了,Android Studio 又更新啦,本次代号是 Dolphin ,也就是海豚,那么这次的坑会是大海吗? 本次更新主要内容是 Compose、Wear 和 Logcat 上的更新支持 ,可以看到 Compose 生态终于越来越成熟了。 如果你对这上面三部分完全不感

    2023年04月09日
    浏览(48)
  • OpenAI发布ChatGPT函数调用和API更新

    2023年6月13日,OpenAI针对开发者调用的API做了重大更新,包括更易操控的 API模型、函数调用功能、更长的上下文和更低的价格。 在今年早些时候发布gpt-3.5-turbo,gpt-4在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。 今天,我们将跟进一些令

    2024年02月08日
    浏览(44)
  • 来自OpenAI的降维打击! OpenAI发布文生视频模型Sora——视频模型的奇点或许来临!!

    手把手教你入门绘图超强的AI绘画,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包 (文末可获取) 文章目录 1 卓越能力 1.1 60s超长时间 高度详细复杂的场景 1.2 复杂的相机运动 1.3 同一场景多个镜头 2 技术原理 3 不足 4 安全

    2024年02月21日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包