其他分享
首页 > 其他分享> > OpenCL vector index

OpenCL vector index

作者:互联网

背景

最近遇到了一个报错,kernel是这样写的: float *a = fvec4[0] (fvec4是一个vload4的float)``

什么意思呢?spec上对于float4还有float8等vector的访问是如何访问的呢?
float4 caseThis = {1.0f, 2.0f, 3.0f ,4.0f};

那么如果我需要访问第一个数据1.0f,我会是这样的:caseThis.x

其他的三个则是 caseThis.y caseThis.z caseThis.w

而不是使用[],如:caseThis[0] //undef behavior


目前

但是如amd nv以及其他编译器看样子都是支持[](从playground上看也是这样),那没办法,跟进业界,也做一下呗;

想法

既然s0 s1这样的能够访问,那么实现[]最简单的方法就是把[]的处理逻辑做到和它差不多。

标签:caseThis,index,float,1.0,OpenCL,访问,vector,float4,fvec4
来源: https://www.cnblogs.com/moonking/p/15004657.html