下面是我想要做的伪代码。我已经知道如何将张量移动到 GPU ( .cuda()
)...
但不知道如何使用 GPU 指针来创建新的张量。有什么方法我错过了吗?
我不想复制devPtr
回主机端,而只是用指针制作 GPU 张量。
int main(void) {
float* devPtr;
cudaMalloc((void**)&devPtr, sizeof(float)*HOSTDATA_SIZE);
cudaMemcpy(devPtr, hostData, sizeof(float)*HOSTDATA_SIZE, cudaMemcpyHostToDevice);
torch::Tensor inA = /* make Tensor with devPtr which is already in GPU */;
torch::Tensor inB = torch::randn({1, 10, 512, 512}).cuda();
torch::Tensor out = torch::matmul(inA, inB);
std::cout << out << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)