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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...