优化与自动调优GPU上的置信传播及编程接口
在GPU计算领域,优化和自动调优对于提升性能至关重要。下面将详细介绍在不同GPU上进行置信传播优化和自动调优的实验,以及一种用于描述转换和代码生成的编程语言接口。
不同GPU的实验
为了比较多代GPU的性能,我们在Tesla C870、GTX 285和GTX 470这三款GPU上进行了混合实现和自动调优实验。
- GPU架构信息
- Tesla C870 :采用G80架构,早于GTX 285。它有16个多处理器,每个多处理器包含8个处理器,总共128个处理器。每个多处理器有16 KB共享内存和8192个寄存器,寄存器数量是GTX 285每个多处理器的一半。
- GTX 470 :采用GF100(Fermi)架构,晚于GTX 285。它有14个多处理器,每个多处理器包含32个处理器,总共448个处理器。每个多处理器有32768个寄存器和64 KB,这64 KB在共享内存和L1缓存之间共享。L1缓存和全局L2缓存可降低本地内存的延迟,程序员可以为每个多处理器分配16 KB共享内存 / 48 KB L1缓存,或者48 KB共享内存 / 16 KB L1缓存。
- 实验编译环境 :GTX 285和Tesla C870的实验使用CUDA 3.1编译和运行,GTX 470的实验使用CUDA 3.2的beta版本。
- 实验结果分析
- 在GTX 470上,将循环展开以将数据放入寄存器并不会像在GTX 285和Tesla C