Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪里是存储在Cuda中的文字浮点/int常量_Cuda - Fatal编程技术网

哪里是存储在Cuda中的文字浮点/int常量

哪里是存储在Cuda中的文字浮点/int常量,cuda,Cuda,内核中遇到的文字常量是否存储在常量内存中?例如: y = x * 3.14f; // x,y are floats. 3.14f是否存储在常量内存中,并在乘法之前复制到寄存器中?根据我的测试,该常量似乎是在指令流中编码的(即,它与指令一起获取): 指令语法FMUL32I R4,R0,3.1400001049041748047明确说明3.14常量在指令中被编码为立即操作数: FMUL32I || | Immediate || 32-bit |Multiply Floating po

内核中遇到的文字常量是否存储在常量内存中?例如:

y = x * 3.14f; // x,y are floats.

3.14f
是否存储在常量内存中,并在乘法之前复制到寄存器中?

根据我的测试,该常量似乎是在指令流中编码的(即,它与指令一起获取):

指令语法
FMUL32I R4,R0,3.1400001049041748047
明确说明
3.14
常量在指令中被编码为立即操作数:

 FMUL32I
 ||  | Immediate
 ||  32-bit
 |Multiply
 Floating point
代码在内核的前3条指令中访问常量内存,但唯一有意义的是:

MOV R2, c[0x0][0x140];
它正在将
d
参数的地址加载到寄存器中以进行寄存器间接加载。这些来自常量内存的加载都与
3.14
常量无关

3.14f是否存储在恒定内存中

没有

并在乘法之前复制到寄存器中

没有

 FMUL32I
 ||  | Immediate
 ||  32-bit
 |Multiply
 Floating point
MOV R2, c[0x0][0x140];