C/C++教程

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

这篇关于OpenCL vector index的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!