猪却膘肥 2024-03-20 18:11 采纳率: 85.7%
浏览 9
已结题

英伟达禁止逆向和转换CUDA2024

1.这个转换和逆向的意思是类似电源接口不匹配我找个转接头,拿来即用么。
2.CUDA不是开源的对吧?那怎么拿到API的呢?是因为一些API有国际标准么。
3.合法的方式是严格按照CUDA接口规范,模拟CUDA的功能,搭建自己的平台、创建自己的数学库么?类似于按照苹果手机的规范功能我仿照做一个一样的?

  • 写回答

8条回答 默认 最新

  • threenewbee 2024-03-20 19:32
    关注

    你的理解基本上都错了。是这样的,nvidia 的显卡支持一种叫做 cuda 的通用计算技术,实现原理是这样的:
    你用类似c语言的语法编写一个并行程序,nvidia提供的开发工具cuda toolkit将其编译为一个专用二进制格式的程序,这个程序的代码是 nv 显卡硬件上的底层指令,这个程序会被 cuda 运行库加载,传输给显卡执行。
    这意味着,大家都可以用 cuda 技术编写程序,来实现高性能计算。但是这个程序,只能在 nvidia 显卡硬件上运行。构成了一个生态闭环。
    实际上,除了 nvidia 有高性能显卡,其它厂商也有,比如说 amd,问题是,底层显卡的指令不一样,那么怎么办?一种方法是,用 amd 的 stream 技术或者 opencl 技术重新编写另一个版本的程序。但是这个首先工作量很大,其次,只有程序的原厂商可以编写。比如说你是一个视频格式转换软件的开发者,你可以去适配 amd 的显卡,因为你掌握这个视频转换的算法。
    如果说你不是开发者,而开发者没有或者不愿去开发基于 amd stream 的版本的程序,那那个基于 cuda 的程序,你就只能在 nv 显卡上运行,在 amd 上只能干瞪眼。
    为了解决这个问题,于是有了一个灰色的技术地带。就是编写一个模拟程序,读取 cuda 的二进制程序,转换编译为别的显卡能识别的硬件指令,并且执行。有了这个模拟程序,如果你拿到一个基于 cuda 的程序,你就可以在没有该程序源代码的情况下,用它跑在非 nvidia 显卡上,享受硬件加速了。
    为什么说灰色,就是这个技术虽然可行,但是 cuda 是 nvidia 的技术专利,同时,nvidia 当然不希望自己的技术能移植到别家的显卡上,这样它还怎么垄断市场呢?这个就有点类似“黑苹果”,苹果本身研发了 MacOS 系统,搭配自家的硬件,但是有人魔改让它可以在非苹果的电脑上也能运行,这自然苹果是不愿意看到的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见