楼主:
softpak (喔喔喔)
2014-05-19 02:24:23软件篇
测试环境:Windows7 + Aparapi + OpenCL
测试硬件1:I3-3220 + Quadro K2000 (FP performance:732.7 GFLOPS) 0.7 T
测试硬件2:Phenom II X3 720 + AMD 6670 (FP performance:1,360.0 GFLOPS)1.3 T
测试硬件3:G3420 + R270X (FP performance:2,560.0 GFLOPS)2.5 T
模式1:JTP模式(Java Thread Pool)
模式2:GPU模式(用GPU计算)
(原本有要用E5,但是LINUX下的环境一直建置失败,只好先拿这三个出来讲)
这三台电脑的主要差异在于Conversion Time(GPU模式)
主要是跑四则运算的循环(10次)
硬件1平均为22ms
硬件2平均为50ms
硬件3平均为45ms
(影响Convertion Time的主因应该是处理器没错)
而四则运算的时间如下:
GPU平均执行时间为1ms
JTP平均执行时间为2ms
但是将循环增加到100次时
GPU平均为2ms
JTP平均为8ms
循环增加到1000次
GPU平均为3ms
JTP平均为25ms
从这可以得知GPU的确是很快
但是以Aparapi来说还无法做即时运算
(仔细思考过后 转换时间普遍小于50ms 1 tick 应该可以承担重要循环的运算)
这个套件算是最好上手的
如果要快速套用在麦块的伺服端
我想是可行的
像是非即时的运算如地图的加载(手拿的地图)
一次就要跑128*128次的循环
像是CHUNK 产生器
一次要产生上千个阵列
还有AI的部分
以上参考Spigot的原始码
使用了大量循环
就很适合丢给GPU算
最近会先尝试将比较简单的部分作程式码的置换