Web开发人员有很多开源选项。例如,LAMP堆栈是完全开源的,如果您在其上构建软件,则不依赖于不同的供应商,专有许可证等。
图形处理单元上的通用计算是否存在类似的东西?
CUDA绝对不是开源的,OpenCL只是一个开放的标准,但编译器是专有的(对吧?)。
还有别的吗?
是否存在'Linux - gcc - video_driver - ?GPGPU'开源软件堆栈?
答案 0 :(得分:4)
有PTX backend for LLVM,但要获得可运行的二进制文件,您仍然需要专有的NVCC编译器和专有的nVidia视频驱动程序来运行它。
BrookGPU和Sh都使用着色器作为后端,因此它们远不具备“真正的”GPGPU平台(如CUDA或OpenCL)的所有功能,而且我认为性能较差。并且,至少Brook,需要专有的驱动程序才能运行。此外,Brook project on SourceForge的最新更新日期为2010年2月,所以这个项目也已经死了。
OpenCL虽然是开放标准,但确实有专有的编译器(在nVidia的情况下,编译器与驱动程序捆绑在一起,对于AMD / ATI和Intel,它可以单独下载)。当然可以开发免费的编译器,但据我所知,目前还没有开放的硬件GPGPU架构(最后广泛使用的架构:nVidia和ATI都保持其公共架构细节不可用)。我们可以确定不同架构之间的命令集是完全不同的,因此对于每个想要支持的架构,人们都必须对其进行逆向工程(我猜它可能会违反许可协议,但不确定)。我听说nouveau团队做了一些尝试,但没有任何明显的结果。