gpt4 book ai didi

c - 如何在 OpenCL 中将元素添加到数组末尾?

转载 作者:行者123 更新时间:2023-11-30 16:56:45 24 4
gpt4 key购买 nike

如何在 OpenCL 中安全地将元素添加到数组末尾?

所谓安全,是指不存在并发问题,例如一个线程尝试在与另一个元素相同的位置添加一个元素

最佳答案

为了安全起见,这段代码将使用原子操作并行地将元素从一个数组添加到另一个数组。

/*
* list: is of size some size greater than a, one thread per element of list
* a: is of size "size", initially 0
* size: this is the size of array "a", initial value is 0
* capacity: this is the number of elements allocated for "a"
*/
__kernel void AddElementsToEndOfArray(
__global int* list,
__global int* a,
__global int size,
__global int capacity)
{
local int sz = atomic_add(&(size),1);
if (sz >= capacity)
return;

unsigned int i = get_global_id(0);
a[sz] = list[i];
}

关于c - 如何在 OpenCL 中将元素添加到数组末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819209/

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