CUDA全局内存
CUDA global memory
这是我的代码
#include "stdafx.h"
#include <iostream>
using namespace std;
#define n 10
__device__ int glMem[n];
__global__ void initVals()
{
for(int i=0;i<n;i++)
glMem[i] = 0;
}
__global__ void test(int *out)
{
for(int i=0;i<n;i++)
out[i] = 10;
}
int main()
{
const size_t sz = size_t(n)*sizeof(int);
initVals<<<1,1>>>();
int *devMem;
cudaMalloc((void **)&devMem, sz);
test<<<1, 1>>>(devMem);
int *hoMem=new int[n];
cudaMemcpy(hoMem, devMem,sz, cudaMemcpyDeviceToHost);
//print
for(int i=0;i<n;i++)
cout<<hoMem[i]<<endl;
return 0;
}
在这个代码中,我定义
glMem
如果我之前不知道尺寸,我能定义吗??例如,我需要这样定义。
__device__ int *glMem;
它不起作用。请提供一些代码示例。。
在这种情况下,您需要将内存分配到设备中。
// size of data
unsigned int size_of_glMem = n * sizeof(int);
// allocate device memory for result
int* glMem = NULL;
cudaMalloc( (void**) &glMem, size_of_glMem );
希望得到帮助。
相关文章:
- 当vector是tje全局变量时,c++中vector的内存管理
- 内存清理程序报告全局对象构造中未初始化值的使用
- OpenCL 将字符从全局内存复制到本地内存
- C++:类如何将自身加载到内存中以递增全局变量?
- 我们应该全局声明一个向量还是在递归函数中传递它以减少内存使用
- 为什么CUDA共享内存比瓷砖矩阵乘法中的全局内存慢
- 为什么C 全局变量不影响程序的内存使用情况
- C 全局对象变量内存释放
- Opencl-将全局内存工作组+边界转移到本地内存
- 全局指针变量如何存储在内存中?
- Cuda-从设备全局内存复制到纹理内存
- 如何在 CUDA 中正确使用全局内存?
- 是通过计算能力1.x的设备中的缓存的全局内存负载/商店
- 解决由全局静态变量引起的内存问题
- 全局内存写入在 CUDA 中是否被视为原子写入
- CUDA sprintf 到全局/共享内存缓冲区
- 分配给 cpp 中定义的全局静态变量的内存是否在 C++ 中删除其类的实例后释放
- 将全局复制到共享内存
- CUDA中更快的是:全局内存写入+__threadfence()或atomicExch()到全局内存
- 谷歌模拟全局模拟对象内存泄漏