使用c++包装器的OpenCL -如何转换cl::CommandQueue到cl_command_queue
OpenCL with c++ wrapper - how to convert cl::CommandQueue to cl_command_queue?
我使用OpenCL与CL/CL .hpp c++包装器。所以我有c++对象,比如cl::CommandQueue
而不是cl_command_queue
。
我也想使用AMD的BLAS库clAmdBlas。这里的函数需要一个cl_command_queue
作为它们的参数之一。
如何从cl::CommandQueue
得到cl_command_queue
?
要获得cl_command_queue
对象,只需使用()
操作符:
cl::CommandQueue cppQueue;
...
cl_command_queue queue = cppQueue();
同样适用于此头文件中包装OpenCL运行时对象的所有其他c++对象。
在cl.hpp
中,cl::CommandQueue
的定义如下:
class CommandQueue : public detail::Wrapper<cl_command_queue>
和detail::Wrapper<T>
定义如下:
template <typename T>
class Wrapper
{
public:
typedef T cl_type;
protected:
cl_type object_;
public:
cl_type operator ()() const { return object_; }
cl_type& operator ()() { return object_; }
...
};
所以你可以这样做:
cl::CommandQueue commandQueue = cl::CommandQueue(...);
cl_command_queue queue = commandQueue();
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- OpenCL 从 cl_program 转换为 cl::p rogram
- 使用c++包装器的OpenCL -如何转换cl::CommandQueue到cl_command_queue