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这样的能够访问,那么实现[]最简单的方法就是把[]的处理逻辑做到和它差不多。

上一篇:python – librosa.load:加载文件时找不到文件错误


下一篇:正则语言与自动机 1 - Regular Language with DFA and NFA