2016-09-06 86 views
1

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

这只是一个苹果执行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。

+0

你对clGetDeviceInfo的调用看起来像什么? –

+0

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

+0

我认为这是Apple实施中的特殊行为;没有一个我以这种方式轮询过的Mac硬件(当然,并非代表性样本)已经为矢量宽度返回了除1以外的任何内容。但是,在我的经验中,苹果的实施有比这更糟的错误... – pmdj

回答

1

在Intel GEN图形上,float矢量的首选矢量宽度为4,如float4中。对于某些内核,float8有时是有道理的。所以我认为这是MacOSX驱动程序的问题。