【问题标题】:Vector Width on OSX Implementation of OpenCL on the Intel Iris Graphics 6100 (MBP 2015)在 Intel Iris Graphics 6100 (MBP 2015) 上执行 OpenCL 的 OSX 上的矢量宽度
【发布时间】:2016-09-07 00:26:37
【问题描述】:

According to Wikipedia, the Iris Graphics 6100 has 48 execution units (EU) with each having a pair of 128 bit FPUs. 所以每个EU应该支持一个8个浮点类型的向量。当设备被轮询 GPU 的首选向量宽度时,除了双精度类型之外,每种类型都显示为 1。结果是 0。这是预期的行为,因为不支持双打。 CPU 正确返回了所有信息。所有 48 个 GPU EU 也被认为存在。

这只是 Apple 实现 clGetDeviceInfo 的一个错误吗?它至少应该输出 char 向量的首选宽度大于 int 向量。但他们都返回 1。

驱动程序是最新版本(2016 年 8 月 29 日)。

编辑:

clGetDeviceInfo(devices[j], CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, sizeof(maxWidth), &maxWidth, NULL);

clGetDeviceInfo(devices[j], CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, sizeof(maxWidth), &maxWidth, NULL);

对于 GPU 上的所有类型,两者都返回 1。

CPU 分别为 Char、Short、Int/Float 返回 16、8、4。

【问题讨论】:

  • 您对 clGetDeviceInfo 的调用是什么样的?
  • clGetDeviceInfo(devices[j], CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, sizeof(maxWidth), &maxWidth, NULL);
  • 我认为这是 Apple 实施的特殊行为;我以这种方式调查过的所有 Mac 硬件(诚然,不是代表性样本)都没有返回 1 以外的向量宽度。但是根据我的经验,Apple 的实现有比这更糟糕的错误......

标签: c++ macos vector opencl gpgpu


【解决方案1】:

在英特尔 GEN 显卡上,浮点向量的首选向量宽度为 4,如 float4。对于某些内核,float8 有时是有意义的。所以我认为这是 MacOSX 驱动程序的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多