1
运行时
DTK24使用hipMemcpyToSymbol报错
2025-04-29 10:21:12
102

操作系统: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。
请问是是哪里出了问题,应该如何修改?

全部评论(1)
只看楼主
网
网友IE4Cyp
1楼
您好,建议使用dtk25.04。
2025/4/29
没有更多内容了
--
楼主
Level.1
0 帖子
楼主热帖
暂无数据