sycl - 使用 SYCL USM 时无法通过 malloc_device 分配内存
问题描述
我正在使用 SYCL 编写神经网络,但我对malloc_device
SYCL 感到困惑。
template<typename T>
class Linear {
private:
T* weight;
T* input;
T* result;
T* bias;
T* dz;
const int M;
const int N;
const int K;
public:
Linear(T* x, T* r, int m, int n, intk, queue& Q): input(x), result(r), M(m), N(n), K(k) {
weight = malloc_device<T>(M * N, Q);
bias = malloc_device<T>(M, Q);
dz = malloc_device<T>(N * K, Q);
}
...
x = malloc_device<T>(N * K, Q)
,
r = malloc_device<T>(M * K, Q)
当我连续有多个Linear
s 时,所有实例都可以正确分配weight
and bias
。但是,只有最后一个Linear
实例可以正确分配for dz
,其他Linear
实例分配失败dz
并得到结果0
。
有没有人可以解释为什么会发生?谢谢!
解决方案
推荐阅读
- php - 标题(位置)命令被跳过
- asp.net-mvc - 错误:请求的服务“Microsoft.Owin.IOwinContext”尚未注册
- excel - 如何使用vba在excel中旋转图像?
- java - Set 接口如何强制执行不重复添加和不保留插入顺序规定
- csv - 如何组合几个 GAWK 语句?
- post - io.restassured.internal.RestAssuredResponseOptionsImpl 不能强制转换为 io.restassured.response.ResponseOptions
- angular - 如何使用 Rxjs 运算符在 Angular 中取消先前的 http 请求
- python - 尝试使用 Plotly 使用 pandas Dataframe 从聚合数据创建构面图
- azure - HAProxy 中的 Proxy_pass 等效项
- php - 如何在 PHP 中使用冒泡排序对多维数组进行排序?