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。
你对clGetDeviceInfo的调用看起来像什么? –
clGetDeviceInfo(devices [j],CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,sizeof(maxWidth),&maxWidth,NULL); – Davidthefat
我认为这是Apple实施中的特殊行为;没有一个我以这种方式轮询过的Mac硬件(当然,并非代表性样本)已经为矢量宽度返回了除1以外的任何内容。但是,在我的经验中,苹果的实施有比这更糟的错误... – pmdj