cuda atomicAdd 函数
int count =atomicAdd(&pillar_count_histo[y_coor * grid_x_size + x_coor], 1);apollo代码中有如上代码,使用cuda函数:其含义如下:ex:int a = 0;int count = atomicAdd(&a, 1);执行后结构:count = 0;a = 1;次操作在一个原子事物中完成原理为:1.读取位
·
int count =
atomicAdd(&pillar_count_histo[y_coor * grid_x_size + x_coor], 1);
apollo代码中有如上代码,使用cuda函数:其含义如下:
ex:
int a = 0;
int count = atomicAdd(&a, 1);
执行后结果:
count = 0;
a = 1;
此操作在一个原子事务中完成
原理为:
1.读取位于全局或共享存储器中地址address 处的32 位或64 位字值(也就是a的原始值,记为old值)
2.计算(old + val),old是0, val 是 1,所以此处结果为1;然后将结果存储在存储器的同一地址中,即此时a变为1了。
3.函数将返回old值,也就是返回0。

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)