cuda - cuda 将设备数据复制到主机(再次)
问题描述
在将设备中动态分配的数据复制到主机时,我遇到了与 8 年前和 9 年前(!)错误完全相同的问题 ?和 CUDA - 将设备数据复制到主机?
有人提到这将很快得到解决。这还没有完成还是我在这里做错了什么?运行 Nvidia Cuda 11.1
所以我的代码是
#include "cuda.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
#define N 400
__device__ int* d_array;
__global__ void allocDeviceMemory() {
d_array = new int[N];
for (int i = 0; i < N; i++) d_array[i] = 123;
}
int main() {
allocDeviceMemory <<<1, 1>>> ();
cudaDeviceSynchronize();
int* d_a = NULL;
cudaMemcpyFromSymbol((void**) &d_a, d_array, sizeof(d_a), 0, cudaMemcpyDeviceToHost);
printf("gpu adress: %p\n", d_a);
int* h_array = (int*) malloc(N * sizeof(int));
cudaError_t errr = cudaMemcpy(h_array, d_a, N * sizeof(int), cudaMemcpyDeviceToHost);
printf("h_array: %d, %d\n", h_array[0], errr);
printf("%s\n", cudaGetErrorString(errr)); //invalid argument
return errr;
}
解决方案
推荐阅读
- asp-classic - 如何使用 MSXML2.serverXMLHTTP.6.0 将数据发布到具有经典 asp 的服务器,如下图所示
- gnuplot - 如何使用gnuplot通过一系列点绘制平滑线?
- python - 使用opencv python从机器部分识别字符
- swiftgen - 用swiftgen把数字变成String类型时,数字无效,多加一个“-”
- android - Android 构建错误:“未找到 lStar...”
- php - CryptoJs AES 解密错误:Nativescript-Angular 中格式错误的 UTF-8 数据
- arraylist - 如何保存列表的jpa列表
- python - 如何模拟需要 Response 对象的 pydantic BaseModel?
- python - 某些软件包上的 pip 安装错误,但其他软件包没有
- mysql - 图层表字段列:配置中缺少关系