能在Intel Iris上运行Cuda或OpenCL吗?

15

我有一台2014年中期的Macbook Pro电脑,搭载Intel Iris和Intel Core i5处理器,以及16GB的内存。我计划学习一些光线追踪的3D技术。但是我不确定我的电脑是否能够快速渲染而无需任何Nvidia硬件。

因此,如果有人能告诉我是否可以使用CUDA,如果不能,那么请您以非常简单易懂的方式教我如何在After Effects中启用OpenCL。我正在寻找任何适合初学者的教程,以学习如何创建或构建OpenCL。

2个回答

22
Cuda只能在Nvidia硬件上运行,但可能有一些库可以将其转换为在CPU核心(而不是iGPU)上运行。
AMD正在致力于“hipify”旧的cuda内核,将它们翻译成OpenCL或类似代码,以便使它们更加通用。
只要硬件和操作系统都支持,OpenCL就可以在任何地方运行。AMD、Nvidia、Intel、Xilinx、Altera、Qualcomm、MediaTek、Marvell、Texas Instruments等都支持此功能。甚至树莓派-x也可能在未来支持。
Stack Overflow的OpenCL文档正在开发中。但是有一些网站: 如果是 Iris Graphics 6100
您的集成GPU具有48个执行单元,每个单元都有8个ALU单元,可以执行加法、乘法和许多其他操作。其时钟频率可达到1GHz。这意味着最大可实现768亿浮点运算每秒(Gflops),但前提是每个ALU都能同时执行1次加法和1次乘法。768 Gflops比AMD的低端独立GPU R7-240还要快。(截至2017年10月19日,AMD的低端产品是1200 GFlops的RX550,比英特尔的近900 GFlops的Iris Plus 650更快)。光线追踪需要重新访问太多几何数据,因此设备应该拥有自己的内存(例如与Nvidia或Amd一起使用),让CPU完成其工作。
如何在计算机上安装OpenCL可能因操作系统和硬件类型而异,但使用已安装OpenCL的计算机构建软件类似:
  • 查询平台。结果可能是AMD、Intel、Nvidia,由于安装错误的驱动程序重叠安装,还可能是新版本opencl支持之前的实验平台。
  • 查询平台(或所有平台)的设备。这将提供单个设备(如果存在驱动程序错误或其他需要修复的问题,则提供它们的副本)。
  • 使用平台创建一个或多个上下文
  • 使用上下文(因此一切都会隐式同步):

    • 使用内核字符串构建程序。通常,CPU可以比GPU更快地构建程序。(有二进制加载选项可加快此过程)
    • 从程序中构建内核(现在是对象)。
    • 从主机侧缓冲区或opencl管理的缓冲区创建缓冲区。
    • 创建命令队列(或多个)

计算之前(或计算数组):

  • 选择用作内核参数的缓冲区。
  • 在“输入”缓冲区上排队缓冲区写入(或映射/取消映射)操作

计算:

  • 使用Enqueue nd range kernel指定运行哪个内核以及使用多少线程
  • 在“输出”缓冲区上执行Enqueue buffer read(或map / unmap)操作
  • 如果您没有使用阻塞类型的enqueueBufferRead,请不要忘记使用clFinish()与主机进行同步。
  • 使用您加速的数据。

在不再需要opencl之后:

  • 确保所有命令队列都为空/完成了内核工作。
  • 按相反的创建顺序释放所有内容

如果您需要加速开源软件,可以使用简单的opencl内核切换热点可并行化循环,如果它还没有其他加速支持。例如,您可以加速Powder Toy沙盒模拟器的气压和热平流部分。


4

1
光线追踪是一种用于3D可视化的技术,无论是使用Python、WebGL等所有可编程语言都可以在此进行讨论。对我来说,这个问题问的是“我能用CUDA编程吗?或者我该如何将其放入代码中”。在谷歌上搜索一个词并得到结果并不意味着出现的第一个商业软件链接就是正确答案!@tera,既然您喜欢堆栈指南,请参阅其中的部分,该部分规定:答案可以是“不要那样做”,但也应包括“请尝试使用这个替代方案”[https://stackoverflow.com/help/how-to-answer]。 - user2589273

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接