如何在 OpenMP 4 中为 std::vector 编写"target data map"?
How to write "target data map" for std::vector in OpenMP 4?
我想使用C++和vectors
。我有像这样创建的带有 C 数组的 C 代码:
double* data = (double*)malloc(sizeof(double) * n);
double* result = (double*)malloc(sizeof(double) * n);
#pragma omp target data map(tofrom: data[0:n],result[0:n])
//loop
现在我使用C++向量,我得到:
example.cpp:31:41: error: expected variable name or an array item
#pragma omp target data map(tofrom: data[0:n],result[0:n])
在这里,他们说OpenMP4引入了用户定义的缩减。但是它有数据映射的类似物吗?
您始终可以获取std::vector
底层存储的指针,然后以与 C 代码相同的方式使用它们。
double* data = vec_data.data();
double* result = vec_res.data();
int n = vec_data.size();
#pragma omp target data map(tofrom:data[0:n],result[0:n])
//loop
相关文章:
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- CMake "--target install"无需"--build"命令行
- 'string.assign(string.data(), 5)' 是明确定义的还是 UB?
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++ 初始化 .data 部分中的变量
- 模式"allocate memory or use existing data"
- boost::asio data owning `ConstBufferSequence`
- Python to C++ Data structure API
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- protobuf C++ SQLite handle blob data
- 错误:字段'dateOfBirth'的类型不完整'Poco::Data::Date'
- 为什么构造函数 Message(const T&data) 与 Message(T&& data) 冲突,当 T = int&时?
- "thread-safe data"与"thread-safe code/functions"的区别
- 使用 object 中的方法调用带有 std::bind 和 std::function.target 的 C 样式函数
- Visual Studio Professional 2013, Update 5, "No Target Architecture"
- 如何找到目标文件 *.o 的 ram rom 使用情况(.bss .text .rodata .data)?
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- *(int*)&data[18]在这段代码中实际上做了什么?
- 如何在 OpenMP 4 中为 std::vector 编写"target data map"?