我真的不确定这是不是该问的地方。我对不同类型硬件的不同编程模型感兴趣。
它是这样开始的,我介绍了一些我正在做的工作,NVIDIA CUDA。我告诉人们,使用GPU作为协处理器的主要问题之一是,您必须将数据从主机传输到GPU。有几个人接着问我有关AMD“CPU”的问题,以及图形内核和普通CPU内核在同一个芯片上的事实。
我回避了这些问题,指出英特尔/AMD的CPU+GPU芯片将永远不会包含像专用的NVIDIA卡那样多的图形核心。
问题是,我不知道AMD APU或Intel Sandy/Ivy Bridge芯片的编程模型是什么。
我的问题是:
发布于 2011-11-25 11:53:42
如何编写程序以利用AMD/Intel芯片上的图形核心?
OpenCL,但我不认为英特尔已经完成了使用图形核心的工作。
这些图形核心真的能直接访问主机内存吗?
是的,但有几个注意事项。
基本上你已经改变了妥协条款。过去,启动成本(将数据复制到图形内存)非常重要,因此工作项需要足够大,以便在向GPU发送一些东西时使其具有价值。这一成本现在已经下降(没有拷贝),但是内核的性能更低(它们更少,内存带宽也更低)。
这是一个有趣的开发,它可能使GPGPU技术在更多的情况下是值得的,但是没有这样的,获得了巨大的收益。不过,收益仍将很大。
在SP和DP触发器中,是否有关于这些芯片的性能的信息?
我讨厌重复营销数字,但是AMD A8-3850有一个480 GFLOPS的标题数字。
来自CUDA,NVIDIA GPU的编程和其他相关芯片有什么相似之处?
我没有使用过CUDA,所以其他人可能想回答,但我的理解是,CUDA和OpenCL有许多相同的概念(内存模型、内核等),但是CUDA确实为OpenCL没有的政党带来了一些东西(C++-isms)
另外,Nvidia和AMD在架构上也有差异,主要是Nvidia的核心是标度的,AMD是矢量的,所以要想在AMD上获得最佳的性能,需要编写矢量代码。
发布于 2011-11-25 10:57:06
我只有使用CUDA的经验,答案是基于这些经验和一些事情,我只是做了一个快速搜索(我也想知道一些答案)。
发布于 2016-12-27 11:35:16
我在OpenCL中做过Bigdata方面的工作。
如何编写程序以利用AMD/Intel芯片上的图形核心?
OpenCL是一种适用于异构环境的底层编程模型.它用于使用系统中的所有计算资源,如CPU、CPU、CPU、FPGA等。OpenCL代码程序也称为运行在CPU和CPU核心上的内核。
虽然英特尔大部分是以其处理器而不是GPU而闻名,但他们现在也提供GPU相当长的时间,比如英特尔GMA和后来的英特尔高清图形。
https://stackoverflow.com/questions/8264108
复制相似问题