gpt4 book ai didi

c++ - 使用 Cuda C 将大型二维数组导出到文件的更快方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:53 24 4
gpt4 key购买 nike

我是 Cuda C 的新手,使用 ofstream 在 Cuda C 中导出大型二维数组时遇到问题。代码运行良好,但性能并不是我所期望的。除了fstream还有其他更快的方法吗?我试过使用 ostringstream 但它并没有真正显示出任何改进。

HANDLE_ERROR( cudaMemcpy( sseismo, seismo,sizeof(float)*(DIMX*samp),cudaMemcpyDeviceToHost ) );
sprintf(nmfile, "seismo%ix%itau%08ivz.txt",4000,4000,1 );
std::ofstream outseis(nmfile); // output, normal file
for (int jj=0; jj<4000; jj++)
{
for (int ii=0; ii<4000; ii++)
{
int ij=(DIMX)*jj + ii;
outseis<<sseismo[ij]<<" ";
}
outseis<<"\n";
}
outseis.close();

最佳答案

您可以输出二进制格式的数据,而不是文本格式。

outseis.write((char*)sseismo[jj*(DIMX)], 4000*sizeof(sseismo[0]));

否则outseis<<几乎是您可以获得的最快的文本输出。

有关std::ofstream::write的更多信息,请参阅此处

http://en.cppreference.com/w/cpp/io/basic_ostream/write

关于c++ - 使用 Cuda C 将大型二维数组导出到文件的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com