parameter为什么除4096再乘4096
c----n2drec = size of output 2-d array, multiple of 4096integer n2drec
parameter (n2drec=((itdm*jtdm+4095)/4096)*4096)
这是代码中的其中几行,不是很明白这个size of output 2-d array是什么,然后为什么要乘以4096,
4096是2的12次方,然后不知道这是不是个例,如果有人懂,请指教。
还有就是parameter的定义,现在就是知道这个(itdm*jtdm+4095)/4096)是先取了整再乘以4096,
为什么要减去4095,然后为什么又要再乘以4096,都不是很明白。
我问了师兄,他说可能是想试试这个n2drec需要定义成多少位的整数,然后也不是很清楚。
希望有了解的朋友们能指点指点,谢谢!
cuda 程序? 按照注释来说,n2drec 必须是4096的整倍数。
除以4096再乘以4096保证了是4096的整倍数,加上4095是为了保证至少有一个倍数的富裕。
实际上,用 nint( itdm*jtdm/4096 ) + 1 就可以了。 珊瑚虫 发表于 2014-12-8 20:12
cuda 程序?
额,请问cuda是什么?
这是个.h文件里的函数定义,在另一个fortran程序里会调用,应该是个fortran程序吧,我也不是很懂,求轻拍 fcode 发表于 2014-12-8 21:05
按照注释来说,n2drec 必须是4096的整倍数。
除以4096再乘以4096保证了是4096的整倍数,加上4095是为了保证 ...
好像有点明白这个语句的意思了,谢谢 cuda 是英伟达出品的一种通用化并行计算平台。目前支持 C/C++ 和 Fortran 语法。
珊瑚虫应该猜错了~~呵呵。
页:
[1]