首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同硬件的编程模型

不同硬件的编程模型
EN

Stack Overflow用户
提问于 2011-11-25 01:51:23
回答 3查看 307关注 0票数 3

我真的不确定这是不是该问的地方。我对不同类型硬件的不同编程模型感兴趣。

它是这样开始的,我介绍了一些我正在做的工作,NVIDIA CUDA。我告诉人们,使用GPU作为协处理器的主要问题之一是,您必须将数据从主机传输到GPU。有几个人接着问我有关AMD“CPU”的问题,以及图形内核和普通CPU内核在同一个芯片上的事实。

我回避了这些问题,指出英特尔/AMD的CPU+GPU芯片将永远不会包含像专用的NVIDIA卡那样多的图形核心。

问题是,我不知道AMD APU或Intel Sandy/Ivy Bridge芯片的编程模型是什么。

我的问题是:

  1. 如何编写程序以利用AMD/Intel芯片上的图形核心?
  2. 这些图形核心真的能直接访问主机内存吗?
  3. 在SP和DP触发器中,是否有关于这些芯片的性能的信息?
  4. 来自CUDA,NVIDIA GPU的编程和其他相关芯片有什么相似之处?
  5. 细胞处理器的SPE是如何访问内存的,或者它的编程模型与今天的Intel/AMD芯片相比是怎样的?
EN

回答 3

Stack Overflow用户

发布于 2011-11-25 11:53:42

如何编写程序以利用AMD/Intel芯片上的图形核心?

OpenCL,但我不认为英特尔已经完成了使用图形核心的工作。

这些图形核心真的能直接访问主机内存吗?

是的,但有几个注意事项。

  1. 虽然主机内存的带宽要好于PCI-e,但它不像GPU对图形内存的带宽(3-4倍的差异)。
  2. 在某些情况下,OpenCL可能需要自己的数据副本。对于GPU来说,这种情况必须发生(主机内存-> Graphics Mem),对于一个APU来说,您想要确保它不会发生。这很大程度上取决于您如何分配缓冲区,据我所知。

基本上你已经改变了妥协条款。过去,启动成本(将数据复制到图形内存)非常重要,因此工作项需要足够大,以便在向GPU发送一些东西时使其具有价值。这一成本现在已经下降(没有拷贝),但是内核的性能更低(它们更少,内存带宽也更低)。

这是一个有趣的开发,它可能使GPGPU技术在更多的情况下是值得的,但是没有这样的获得了巨大的收益。不过,收益仍将很大。

在SP和DP触发器中,是否有关于这些芯片的性能的信息?

我讨厌重复营销数字,但是AMD A8-3850有一个480 GFLOPS的标题数字。

来自CUDA,NVIDIA GPU的编程和其他相关芯片有什么相似之处?

我没有使用过CUDA,所以其他人可能想回答,但我的理解是,CUDA和OpenCL有许多相同的概念(内存模型、内核等),但是CUDA确实为OpenCL没有的政党带来了一些东西(C++-isms)

另外,Nvidia和AMD在架构上也有差异,主要是Nvidia的核心是标度的,AMD是矢量的,所以要想在AMD上获得最佳的性能,需要编写矢量代码。

票数 2
EN

Stack Overflow用户

发布于 2011-11-25 10:57:06

我只有使用CUDA的经验,答案是基于这些经验和一些事情,我只是做了一个快速搜索(我也想知道一些答案)。

  1. 我认为它们是用同样的方式写的。您可以在它们中全部使用OpenCL,即使在硬件实现上存在差异,它们也遵循相同的原则。
  2. 我不知道AMD和英特尔是如何,但我会说是的。你可以用CUDA来做。使用映射的页面锁定主机内存,您可以直接从内核访问主机上的内存。NVIDIA甚至建议,如果您有一个集成的NVIDIA系统( CUDA C编程指南第5.3.1节),则建议以这种方式使用内存。
  3. 是。要了解英特尔,请查看第11页中的英特尔高清图形DirectX开发者指南(桑迪桥) (英特尔HD3000的125 125GFlops)。对于AMD,他们把一些价值放在每张卡的规格页上,例如HD6990。你可能会在某个地方找到一个比较。
  4. 正如我所说的,我认为编程模型是相似的,OpenCL也有内核、主机和设备内存的概念,以及线程和工作组的标识符(仅举几个例子)。为了最大限度地提高性能,您需要了解一些关于特定体系结构的知识,但是您可以使用类似的方法来处理所有这些架构。
  5. 不知道..。
票数 1
EN

Stack Overflow用户

发布于 2016-12-27 11:35:16

我在OpenCL中做过Bigdata方面的工作。

如何编写程序以利用AMD/Intel芯片上的图形核心?

OpenCL是一种适用于异构环境的底层编程模型.它用于使用系统中的所有计算资源,如CPU、CPU、CPU、FPGA等。OpenCL代码程序也称为运行在CPU和CPU核心上的内核。

虽然英特尔大部分是以其处理器而不是GPU而闻名,但他们现在也提供GPU相当长的时间,比如英特尔GMA和后来的英特尔高清图形。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8264108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档