加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

PTX是否做到绕过CUDA垄断?

(2025-02-18 15:57:26)
标签:

it

时评

分类: 但斌观点
2025年2月8日:
@但斌:PTX是否做到绕过CUDA垄断?

我的同事黄海平的结论:

正好昨天研究了一天,我简单解释下,结论是不能绕过CUDA。

首先解释下PTX。英伟达芯片的顶层应用场景特别广,从游戏图形、自动驾驶、大语言模型到科学模拟,每个领域都得根据具体任务去编程软件库,因为每个领域使用GPU都得靠这些不同库去加速。英伟达芯片的底层硬件设计,架构也一直在变,从过去的Pascal、Volta到现在我们熟知的Ampere、Hopper和Blackwell,里边的芯片架构一直在升级,包括制程、精度、复杂指令等。    所以,软件和硬件都一直在迭代和丰富,怎么互相兼容呢?简单来讲,我今天设计的软件,过几年能否适应新的英伟达显卡,大家都会打个问号。  因此,英伟达自己设计了一套专用的“中将表示层”,来连接软件和硬件。就好像,中国和欧洲做生意,中国和欧洲人都讲非常多种语言,如果有个中间美国人做翻译,都懂中欧两地的所有语言,那么就不需要每个中国人都学习欧洲所有语言了,大家都讲英语好了。

这就是PTX的作用,翻译上层CUDA软件的高级语言,成为中间表示,然后再转化成英伟达显卡可以理解的SASS语言(这部分是保密的)。英伟达为了让上层CUDA软件开发者能够更好的适配GPU,就开放了PTX本身的编辑权限,允许开发者不仅编辑CUDA软件层,还可以编辑PTX中间编译层。可以这么理解,CEO把工作布置给市场部主管,主管把它拆成各种任务分配给销售去执行,但也允许CEO直接来调整任务,如果觉得主管分配的不合理的话。

所以,DEPPSEEK能够使用PTX(全称为:并行计算任务线程的执行)进行任务执行的优化,也是因为英伟达的“可编辑性”允许的,英伟达经常会吸收这些创新工程方法,到官方那边的,这也是CUDA生态的魅力优势。而AMD、华为、寒武纪的芯片,也有这种中间表达层,但他们用的是开源的架构叫OPENCL,并且是不给开发者暴露和可编辑的。

以上原理弄清楚之后,我们可以思考,Deepseek使用PTX进行硬件的任务执行优化,是否可以绕过CUDA。

首先,PTX就是CUDA的一部分,CUDA不止是软件,还包括PTX和底层的硬件架构,全称是“计算和设备的统一架构”,这是个架构,就是我们上边讲的软件和硬件保持多元化更新,但可以时时统一协作,进行耦合。

其次,Deepseek编辑PTX,只是编辑了CUDA软件的另一种表达形式,这个PTX也只有英伟达的芯片可以用,其他芯片看不懂这个指令。

再者,Deepseek可以编辑PTX,那是英伟达放开的权限,如果用华为、AMD、tpu的芯片,其中间表达层IR码,Deepseek连编辑的权限都没有。

如果要绕过CUDA,除非在高级语言层面,重新花时间去从0开始设计一套覆盖各个行业的加速库,需要时间的;要么勉强的把CUDA编译成PTX以外的IR码,供其他芯片读懂,这是AMD在做的编译器适配工作,就像在苹果电脑上运行Windows系统,效果非常差。除此以外,别无他法。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有