我在看人生的gpu代码游戏,无法理解为什么ceil用于
dim3 cpyBlockSize(BLOCK_SIZE,1,1);
dim3cpysimulationRowssimulationSize((int) ceil (size/(float) cpyBlockSize.x), 1, 1);
dim3 cpysimulationColssimulationSize((int) ceil ((size+2) / (float) cpyBlockSize.x), 1, 1);
答案 0 :(得分:0)
在没有太多上下文的情况下很难说,但这是我最好的猜测:
整数除法四舍五入,但是看来必要的行为是将(size/(float) cpyBlockSize.x)
舍入。因此,他们将cpyBlockSize.x
强制转换为浮点数,以便除法结果为小数,然后使用ceil
将该小数四舍五入以达到预期的行为。
例如,大多数*编程语言(包括C):
> print (5/2)
> 2
> print (5/(float)2)
> 2.5
> print (ceil(5/(float)2))
> 3