【发布时间】:2017-04-13 09:45:34
【问题描述】:
如何在主机 CPU 和 GPU 之间交换二维元素? 我尝试将这个 2d 元素用作 w[0:(n_hidden*i)-1],但编译器反馈告诉我有一些问题
这是RBM算法函数:
double RBM::propdown(int *h, int i, double b) {
#pragma acc data region \
copyin(w[0:(n_hidden*i)-1],h[0:n_hidden],b) create(pre_sigmoid_activation)
double pre_sigmoid_activation = 0.0;
#pragma acc parallel loop reduction(+:pre_sigmoid_activation)
for(int j=0; j<n_hidden; j++) {
pre_sigmoid_activation += W[j][i] * h[j];
}
pre_sigmoid_activation += b;
return sigmoid(pre_sigmoid_activation);
#pragma acc exit data \
delete ( pre_sigmoid_activation)
}
【问题讨论】:
标签: c++ parallel-processing openacc