近日英伟达发出警告,禁止对其自主知识产权的CUDA程序,通过反向工程、反编译等方式在非NVIDIA GPU上运行。国内兼容CUDA路线的GPGPU企业纷纷发表声明表示没有违反相关限制条款,这里做一个科普解释。
首先CUDA是英伟达推出的一套专用于GPU加速的编程模型和工具集。它包含了编程语言、编译器、运行时库、开发环境等,方便程序员编写能充分利用NVIDIA GPU硬件的并行计算程序。当程序运行时,编译器将CUDA C/C++代码编译为PTX中间代码格式,存储在二进制文件中。接着,CUDA运行时库会从中加载PTX中间代码,再通过CUDA驱动程序发送给GPU执行。
如果想要把CUDA程序运行在非英伟达GPU上大概有两条技术路线:
一是动态二进制翻译技术,比如英特尔和AMD参与的ZLUDA项目,通过捕获运行时加载的PTX中间代码二进制,解析其指令语义,实时将其翻译为OpenCL代码,在虚拟设备层上模拟执行,从而实现在非NVIDIA GPU上运行CUDA程序。
二是从头构建了一套能实现类似CUDA功能、但实现细节不同的编程模型和运行时库。
目前从英伟达发布的最新许可协议条款看,主要瞄准AMD的ZLUDA方案(第一种),国产GPGPU芯片如天数智芯、摩尔线程、沐曦等均采用第二条路线,不在禁止范围。至于华为、寒武纪等就不兼容CUDA,更不会触碰限制了。
近日英伟达发出警告
最新推荐文章于 2024-09-04 14:24:09 发布