CUDA:在设备内核中使用结构和类

CUDA: using structures and classes inside device kernel

本文关键字:结构 内核 CUDA      更新时间:2023-10-16

有没有办法在全局内核中使用:

1)简单的结构,如:

Structure Pixel{
    float p;
 }

2) 具有函数和重载运算符的类 (C++)

3) 标准::向量?

谢谢

  1. 是的
  2. 是的

通常,编程指南中详细说明了C++支持:

对于主机代码,nvcc 支持主机 c++ 编译器支持的 C++ ISO/IEC 14882:2003 规范的任何部分。

对于设备代码,nvcc 支持代码示例中所示的功能,但限制中描述了一些限制;它不支持运行时类型信息 (RTTI)、异常处理和C++标准库。

有许多 CUDA 示例代码演示了各种C++支持/功能,包括重载。

推力

是一个模板库,允许使用具有各种形式的并行化(包括GPU加速)的(推力)矢量容器。 STL向量容器和算法的用户会发现推力结构很熟悉。 快速入门指南可能会引起您的兴趣。