基于点云的CGH计算在CPU上的加速策略
1. 并行计算与内存需求
在进行相关计算时,如果有可用的点,我们可以进行并行计算。为此,我们准备了与目标点数相同数量的伽马射线。计算所需的内存需要更多的缓冲区来存储伽马(gamma)、德尔塔(delta)和西塔(theta)。测试机器有8个逻辑CPU,各缓冲区大小如下:
- 伽马缓冲区大小:线程数 × 浮点数大小 × 目标点数 = 32Nobj
- 德尔塔缓冲区大小:线程数 × 浮点数大小 × 目标点数 = 32Nobj
- 西塔缓冲区大小:线程数 × 浮点数大小 × 目标点数 = 32Nobj
使用的内存量会增加96Nobj字节,所需内存量高度依赖于目标点数。这对于高分辨率对象来说是一个主要问题,在这种情况下,无论计算速度如何,计算都可能无法进行。
采用适合CPU的算法后,计算速度几乎提高了一倍,具体性能如下表所示:
| Nobj | 计算时间 [s] | 加速率 | 使用内存 [MiB] (12Nobj + 4Nhol + 96Nobj) |
| ---- | ---- | ---- | ---- |
| 710 | 0.21 | 136.96 (1.85) | 7.98 (0.01 + 7.91 + 0.07) |
| 44,647 | 11.20 | 163.28 (1.97) | 12.51 (0.51 + 7.91 + 4.09) |
| 978,416 | 1,908.04 | 21.39 (0.99) | 108.68 (11.20 + 7.91 + 89.58) |
2. 使用查找表减少延迟
与最初
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



