我可以在intel iris上运行Cuda或opencl吗?

时间:2016-11-12 06:49:19

标签: xcode opencl gpu

我在2014年中期推出了一款配备intel iris和intel核心i5处理器16GB内存的Macbook pro。我正在计划学习一些光线追踪的3D。但是,我不确定,如果我的笔记本电脑可以在没有任何nvidia硬件的情况下快速渲染。

所以,我很感激,如果有人可以告诉我是否可以使用Cuda,那么请您以非常简单的方式教我如何在影响后启用OpenCL。我正在寻找初学者的任何教程,以学习如何创建或构建OpenCL?

2 个答案:

答案 0 :(得分:13)

Cuda仅适用于nvidia硬件,但可能会有一些库将其转换为在cpu内核上运行(而不是igpu)。

AMD正致力于“老化”旧的cuda内核,将它们转换为opencl或类似的代码,以便它们变得更加通用。

只要硬件和操作系统都支持,Opencl就可以在任何地方使用。 Amd,Nvidia,Intel,Xilinx,Altera,Qualcomm,MediaTek,Marvell,德州仪器......支持这一点。也许甚至Raspberry pi-x也可以支持。

stackoverflow.com中opencl的文档正在开发中。但是有一些网站:

如果是 Iris Graphics 6100

您的集成gpu有48个执行单元,每个单元有8个ALU单元,可以进行添加,乘法和更多操作。它的时钟频率可以升至1GHz。这意味着每秒最多48 * 8 * 2(1加+ 1乘)* 1G = 768千兆浮点运算,但仅当每个ALU能够同时进行1次加法和1次乘法时。 768 Gflops不仅仅是AMD的R7-240这样的低端分立式GPU(截至2017年10月19日,AMD的低端产品是RX550,拥有1200 GFlops,比英特尔的Iris Plus 650快近900 GFlops)。光线跟踪需要重新访问太多的几何数据,因此设备应该有自己的内存(例如使用Nvidia或Amd),以便让CPU完成其工作。

如何在计算机上安装opencl可能会因操作系统和硬件类型而改变,但使用opencl安装的计算机构建软件则类似:

  • 查询平台。结果可能是AMD,Intel,Nvidia,这些都是重复的,因为重复安装了错误的驱动程序,实验平台在更新的opencl版本支持之前。
  • 查询平台(或所有平台)的设备。这给了单个设备(如果有驱动程序错误或其他一些需要修复的东西,则为其重复)。
  • 使用平台创建上下文(或多个)
  • 使用上下文(所以一切都会隐式同步):

    • 使用内核字符串构建程序。通常CPU可以花费比GPU更少的时间来构建程序。(有二进制加载选项来削减它)
    • 从程序构建内核(现在作为对象)。
    • 从主机端缓冲区或opencl管理的缓冲区创建缓冲区。
    • 创建命令队列(或多个)

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

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

计算:

  • 排队nd范围内核(指定运行哪个内核以及有多少个线程)
  • 在“输出”缓冲区
  • 上排队缓冲区读取(或映射/取消映射)操作
  • 如果您没有使用阻止类型enqueueBufferRead,请不要忘记使用clFinish()与主机同步。
  • 使用您的加速数据。

不再需要opencl之后:

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

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

答案 1 :(得分:2)

Yes, you can,因为OpenCL is supported by MacOS原生。

从您的问题看来,您似乎没有寻求advice on programming,这本身就是Stack Overflow的适当主题。 Google上的第一个搜索内容解释了how to turn on OpenCL accelerated effects in After Effects(项目设置对话框 - >视频渲染和效果),但我自己没有经验。