您好,建议使用dtk25.04。
操作系统:Ubuntu 20.04
DTK版本:dtk-24.04
驱动版本:rock-5.7.1/now 6.2.26 amd64 [installed,local]
DCU版本:K100_AI
异常描述:
1.源码为test.cpp,内容如下
#include <hip/hip_runtime.h>
#include <thrust/device_vector.h>
extern "C" {
constant float c_float_array[10];
}
int main() {
const int N = 10;
thrust::device_vector<float> d_float(N,1.0f);
hipError_t err = hipMemcpyToSymbol(
HIP_SYMBOL(c_float_array),
thrust::raw_pointer_cast(d_float.data()),
N * sizeof(float),
0,
hipMemcpyDeviceToDevice
);
if (err != hipSuccess) {
printf("err: %d\n", err);
printf("err: %s\n", hipGetErrorString(err));
return 1;
}
return 0;
}
2.编译命令为hipcc -O2 -std=c++14 test.cpp -o test,正常编译完成
3.运行./test,报错如下:
err: 21
err: invalid copy direction for memcpy
同样的程序在dtk22.10.1上是可以运行的,对比了dtk22和dtk24的手册,hipMemcpyToSymbol的使用方式没有区别,参考hipMemcpyToSymbolAsync详细说明,感觉copyType都支持hipMemcpyDeviceToDevice。
请问是是哪里出了问题,应该如何修改?

暂无数据