gpt4 book ai didi

opencl - OpenCL 是否支持数组初始化器,包括默认初始化为 0?

转载 作者:行者123 更新时间:2023-12-03 22:47:17 33 4
gpt4 key购买 nike

在我的内核中,我需要一个累加器数组。

__kernel myKernel(...)
{
float accum[SIZE] = {};

for(i=0; i<ITER; ++i) {
accum[...] += ...
}

...
}

在 C 中, = {}会为我初始化数组以填充 0,但我不确定 OpenCL 中是否是这种情况?我需要类似以下的东西,还是浪费周期?
float accum[SIZE];
for(int i=0; i<SIZE; ++i) accum[i] = 0;

最佳答案

OpenCL C 是 ISO/IEC 9899:1999 C 语言规范(又名 C99)的衍生版本。在这两种规范中,是的,= { 0 }将对数组进行零初始化(注意 0 ,空的初始化列表是 not allowed in C )。

在实践中,一些实现也可能在您启动内核之前将设备私有(private)和/或本地内存清除为零,但这不是您可以依赖的行为。

关于opencl - OpenCL 是否支持数组初始化器,包括默认初始化为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27327189/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com