如何理解CUDA中的cudaMalloc()的参数
2014-01-10 20:28
411 查看
首先看下此运行时函数的原型:
主要的第一个参数。为什么是两个星星呢?用个例子来说明下。
例子中:
我在显存中申请了一个包含1024个元素的float数组。而device_data这个指针是存储在主存上的。之所以取device_data的地址,是为了将cudaMalloc在显存上获得的数组首地址赋值给device_data。在函数中为形参赋值是不会在实参中繁盛变化的,但是指针传递的是地址,我们操作了某个地址的数据,实际上是真的改变了指定地址的数据。像这个申请显存的函数,第一个参数传递的是device_data这个指针的地址,然后改变这个地址的内容就会带给实参真正的改变。
cudaError_t cudaMalloc (void **devPtr, size_t size );
主要的第一个参数。为什么是两个星星呢?用个例子来说明下。
float *device_data=NULL; size_t size = 1024*sizeof(float); cudaMalloc((void**)&device_data, size);
例子中:
我在显存中申请了一个包含1024个元素的float数组。而device_data这个指针是存储在主存上的。之所以取device_data的地址,是为了将cudaMalloc在显存上获得的数组首地址赋值给device_data。在函数中为形参赋值是不会在实参中繁盛变化的,但是指针传递的是地址,我们操作了某个地址的数据,实际上是真的改变了指定地址的数据。像这个申请显存的函数,第一个参数传递的是device_data这个指针的地址,然后改变这个地址的内容就会带给实参真正的改变。
相关文章推荐
- 如何理解CUDA中的cudaMalloc()的参数
- 如何理解CUDA中的cudaMalloc()的参数
- 如何理解 CUDA 中的 cudaMalloc() 的参数
- 如何理解Java中参数传递只能传值?
- 如何理解数组作为函数参数时,数组名就是指针?
- 如何理解数据结构中的引用参数 &
- JavaScript_如何使用arguments实现可变参数_的理解和应用02
- Activex 一控件如何对参数处理 ,新手 上班第一天接到这东西看不懂不理解
- 如何理解JAVA 参数传递总是值传递(pass-by-value )
- 如何理解Move参数中的const Source和var Dest
- Objective-C中一个方法如何传递多个参数的理解
- 如何理解(function($) {})(af); 及其参数传递
- 如何理解数组作为函数参数时,数组名就是指针?
- 理解性能的奥秘——应用程序中慢,SSMS中快(5)——案例:如何应对参数嗅探
- 如何理解数据结构中的引用参数(&)
- 理解性能的奥秘——应用程序中慢,SSMS中快(5)——案例:如何应对参数嗅探
- 如何理解数据结构中的引用参数 &
- 理解性能的奥秘——应用程序中慢,SSMS中快(5)——案例:如何应对参数嗅探
- 我对Objective-C中一个方法如何传递多个参数的理解
- Objective-C中一个方法如何传递多个参数的理解