展会信息港展会大全

OpenAI开源专用于开发神经网络的GPU程序语言Triton
来源:互联网   发布日期:2021-07-30 07:39:22   浏览:16084次  

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

人工智能实验室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把这些重要的算法考量留给开发人员决定。

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港