如何解决IBM Power AC922上的内存分配非常慢
当仅使用cudaMalloc
分配大容量内存时,与另一个配备2x Intel Xeon Gold 6148 CPU @ 2.40GHz的HPC系统相比,我发现 IBM Power AC922 的性能非常差。这两个系统具有完全相同 NVIDIA V100 GPU 。
运行以下代码时:
#include <chrono>
#include <iomanip>
#include <iostream>
int main(int argc,char* argv[]) {
size_t num_elements = std::stoull(argv[1]);
auto t0 = std::chrono::high_resolution_clock::now();
cudaSetDevice(0);
int* ptr;
cudaMalloc((void**)&ptr,sizeof(int) * num_elements);
auto t1 = std::chrono::high_resolution_clock::now();
std::cout << "duration: " << std::fixed << std::setprecision(9)
<< std::chrono::duration<double>(t1 - t0).count() << std::endl;
return 0;
}
我观察到以下微基准测试结果:
./test 8000000000
# AC922
duration: 1.584945148
# Intel
duration: 0.548986187
如何在IBM Power机器上更快地分配内存?
您可以使用以下方法来编译微基准测试:
nvcc -std=c++11 -O3 test.cu -o test
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。