官术网_书友最值得收藏!

Passing parameters by value

If you recall, in the gpuAdd program, the syntax for calling the kernel was as follows:

gpuAdd << <1,1> >>(1,4,d_c)

On the other hand, the signature of the gpuAdd function in definition was as follows:

__global__  gpuAdd(int d_a, int d_b, int *d_c) 

So, you can see that we are passing values of d_a and d_b while calling the kernel. First, parameter 1 will be copied to d_a and then parameter 4 will be copied to d_b while calling the kernal. The answer after addition will be stored at the address pointed by d_c on device memory. Instead of directly passing values 1 and 4 as inputs to the kernel, we can also write the following:

gpuAdd << <1,1> >>(a,b,d_c)

Here, a and b are integer variables that can contain any integer values. Passing parameters by values is not recommended, as it creates unnecessary confusion and complications in programs. It is better to pass parameters by reference.

主站蜘蛛池模板: 土默特左旗| 上思县| 荣成市| 确山县| 松原市| 新营市| 西乌| 正安县| 克东县| 仁布县| 双牌县| 凉城县| 怀化市| 思茅市| 沙洋县| 桂东县| 山丹县| 孝昌县| 祁阳县| 定安县| 琼中| 抚顺市| 建平县| 涿鹿县| 二连浩特市| 登封市| 龙游县| 寻乌县| 淅川县| 光山县| 巴彦淖尔市| 上杭县| 宕昌县| 喜德县| 武胜县| 开平市| 广平县| 葵青区| 万山特区| 沂水县| 英吉沙县|