APP下载

OpenAI开源专用于开发神经网络的GPU程式语言Triton

消息来源:baojiabao.com 作者: 发布时间:2024-10-09

报价宝综合消息OpenAI开源专用于开发神经网络的GPU程式语言Triton

人工智能实验室OpenAI正式发布GPU程式语言Triton,这个语言是专门用来开发机器学习算法,让开发人员以类似Python程式码撰写方式,在即便没有CUDA程式开发背景下,也能够撰写高效能GPU程式码,而且大部分程式码都能与专家撰写的程式码效能相当。

官方提到,深度学习领域的研究方向,通常需要使用原生框架运算子来实现,但这种方法需要创建许多临时张量,而这会损害神经网络的效能。虽然可以透过编写专门的GPU核心来解决这个问题,但是因为GPU程式码开发很复杂,因此增加了开发门槛。

虽然现在有许多系统来简化这个过程,但OpenAI认为,这些系统通常过于冗长,或是缺乏灵活性,甚至产生的程式码效能,明显低于手动调整的基准。因此他们为了解决这个GPU程式开发痛点,因而扩展并且改进了Triton,现在发布最新版本Triton 1.0。

Triton原本的创造者Philippe Tillet,在2年前发表论文,首次公开了Triton初始版本,而现在Philippe Tillet在OpenAI工作,与其他研究人员一起改进Triton,使其成为适用于企业的机器学习专案。

当前大部分企业人工智能模型,都在Nvidia的GPU上执行,开发人员使用Nvidia提供的软件建构这些模型,而Nvidia重要的框架CUDA,提供人工智能程式使用GPU进行运算的基础模块。而现在OpenAI所推出的Triton,拥有编写简单且执行高效能的优点,比起CUDA框架普遍被认为撰写具有挑战性的问题,Triton对开发人员来说更加友善。

OpenAI研究人员解释,现在GPU架构大致可以分成3个重要元件,DRAM、SRAM和ALU(算术逻辑单元),而最佳化CUDA程式码必须同时考虑这三者。来自DRAM的内存传输,必须要合并成为大型交易,以妥善利用内存界面的最大带宽,而这些资料在重新使用之前,必须手动储存到SRAM中,并且管理最大容量,来减少检索时共享内存库的冲突,而且运算必须要在串流复合处理器(Streaming Multiprocessors)间,仔细分区和调度,来善用指令和执行绪平行运算,或是增加专用ALU的使用率。

撰写程式码时,考虑这些要素需要许多经验,即便对拥有多年开发经验的CUDA开发者来说,也并非一件简单的事,而Triton的目的是要能自动进行最佳化,让开发人员可以专注在开发高级逻辑上,不过,Triton也保有了一些灵活度,为了使Triton广泛适用,因此不会跨串流复合处理器自动调度任务,Triton把这些重要的算法考量留给开发人员决定。

2021-07-29 19:43:00

相关文章