为什么在这里使用ceil以及它有什么作用

时间:2019-04-22 22:32:56

标签: cuda

我在看人生的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);

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