使用CUDA / thrust在数组中设置每个float4的一个元素

Ashwin Gupta |

我有一个相当标准的float4类和在GPU上所说的float4数组。每个float4代表一个(x,y,z,rgba)点,我想使用推力将数组中每个float4的rgba值设置为一个特定值。似乎推力:: fill()可能与自定义迭代器一起使用,但是我不知道如何编写推力迭代器。有关如何执行此操作的任何想法?

(x1, y1, z1, c1), (x2, y2, z2, c2), .... --> (x1, y1, z1, value), (x2, y2, z2, value), ....
看守人

似乎thrust::fill()可以与自定义迭代器一起使用

不会的 fill是简单的任务。无法读取目标迭代器,因此无法对其进行修改。您不想在迭代器范围内进行分配,而是想修改现有的迭代器范围。transform将是正确的算法。

编写一个仿函数,类似于:

struct set_c
{
  float y;

  __host__ __device__
  set_c(const float val) : y(val) {};

  __host__ __device__
  myfloat4 operator()(const myfloat4& x)
  {
      myfloat4 val = x;
      val.c = y;
      return val;
  }
};

然后通过原位变换将该仿函数应用于您的数据:

thrust::device_vector<myfloat4> data(bigconstant);
// something ...
set_c op(5.f); // set each myfloat4.c = 5.f
thrust::transform(data.begin(), data.end(), data.begin(), op);

上面所有代码显然都写在浏览器中,而且从来没有靠近编译器。使用风险自负。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CUDA Thrust确定2个最大元素及其在每个矩阵行中的位置

来自分类Dev

使用cublas sgemv时如何跳过float4中的第四个元素?

来自分类Dev

获得CUDA Thrust以使用您选择的CUDA流

来自分类Dev

使用CUDA计算递归数组

来自分类Dev

使用Thrust,CUDA进行慢速排序

来自分类Dev

在主机上顺序使用CUDA Thrust算法

来自分类Dev

使用CUDA / Thrust使关键出现的次数相等

来自分类Dev

使用CUDA在矩阵中添加相邻元素

来自分类Dev

使用CUDA / Thrust对多个数组进行排序

来自分类Dev

使用MongoDB将文档中数组的每个元素链接到另一个文档数组中的相应元素

来自分类Dev

如何使用Python将数组中的元素与另一个数组中的每个元素相乘

来自分类Dev

使用多维数组中的每个第一个元素

来自分类Dev

使用多维数组中的每个第一个元素

来自分类Dev

使用CUDA内核进行数组操作

来自分类Dev

使用CUDA复制结构内部的指针数组

来自分类Dev

如何使用ParallelStream将一个数组的每个元素添加到另一个数组的相应元素中?

来自分类Dev

我使用string.split(“ |”),得到的数组中每个字符都在一个数组元素中

来自分类Dev

在opencv 3中使用cuda :: morphologyex

来自分类Dev

理解memset在CUDA设备代码中的使用

来自分类Dev

使用Python中每个列表的最后一个元素

来自分类Dev

使用numpy测试一个数组中的每个元素是否存在于另一个数组中的最有效方法

来自分类Dev

使用Javascript从另一个数组的每个元素中的结尾数字创建一个数组

来自分类Dev

在设备内存中使用指向struct的指针设置数组;在CUDA

来自分类Dev

cuda中每个块一个线程

来自分类Dev

CUDA中每个块一个线程

来自分类Dev

如何为数组中的每个元素添加一个附加属性,然后如何使用该属性影响输出的样式

来自分类Dev

使用javascript获取数组中每个字符串的第一个元素

来自分类Dev

如何仅在数组的某些第一个元素上使用_.reduce

来自分类Dev

在数组中每个元素之间使用MATLAB linspace

Related 相关文章

  1. 1

    使用CUDA Thrust确定2个最大元素及其在每个矩阵行中的位置

  2. 2

    使用cublas sgemv时如何跳过float4中的第四个元素?

  3. 3

    获得CUDA Thrust以使用您选择的CUDA流

  4. 4

    使用CUDA计算递归数组

  5. 5

    使用Thrust,CUDA进行慢速排序

  6. 6

    在主机上顺序使用CUDA Thrust算法

  7. 7

    使用CUDA / Thrust使关键出现的次数相等

  8. 8

    使用CUDA在矩阵中添加相邻元素

  9. 9

    使用CUDA / Thrust对多个数组进行排序

  10. 10

    使用MongoDB将文档中数组的每个元素链接到另一个文档数组中的相应元素

  11. 11

    如何使用Python将数组中的元素与另一个数组中的每个元素相乘

  12. 12

    使用多维数组中的每个第一个元素

  13. 13

    使用多维数组中的每个第一个元素

  14. 14

    使用CUDA内核进行数组操作

  15. 15

    使用CUDA复制结构内部的指针数组

  16. 16

    如何使用ParallelStream将一个数组的每个元素添加到另一个数组的相应元素中?

  17. 17

    我使用string.split(“ |”),得到的数组中每个字符都在一个数组元素中

  18. 18

    在opencv 3中使用cuda :: morphologyex

  19. 19

    理解memset在CUDA设备代码中的使用

  20. 20

    使用Python中每个列表的最后一个元素

  21. 21

    使用numpy测试一个数组中的每个元素是否存在于另一个数组中的最有效方法

  22. 22

    使用Javascript从另一个数组的每个元素中的结尾数字创建一个数组

  23. 23

    在设备内存中使用指向struct的指针设置数组;在CUDA

  24. 24

    cuda中每个块一个线程

  25. 25

    CUDA中每个块一个线程

  26. 26

    如何为数组中的每个元素添加一个附加属性,然后如何使用该属性影响输出的样式

  27. 27

    使用javascript获取数组中每个字符串的第一个元素

  28. 28

    如何仅在数组的某些第一个元素上使用_.reduce

  29. 29

    在数组中每个元素之间使用MATLAB linspace

热门标签

归档