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グラフィックス6100(MBP 2015)のOpenCLの実装
AppleのclGetDeviceInfo実装のバグですか?少なくとも、charベクトルの好ましい幅がintベクトルよりも大きいことを出力する必要があります。しかし、彼らはすべて戻ってきています。
ドライバは最新バージョンです(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(デバイス[j]、CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT、sizeof(maxWidth)、およびmaxWidth、NULL); – Davidthefat
私はこれがAppleの実装からの独特な動作だと思います。私がこのようにしてポーリングしたMacハードウェア(どれも代表的なサンプルではない)は、ベクトル幅に対して1以外のものを返していません。しかし、その後、Appleの実装は私の経験でこれよりもはるかに悪いバグを持っています... – pmdj