首页> 外文OA文献 >CPUとGPU間のデータ転送時間の短縮に関する研究
【2h】

CPUとGPU間のデータ転送時間の短縮に関する研究

机译:缩短CPU与GPU之间的数据传输时间的研究

摘要

近年、GPUを利用して一般的な並列プログラミングを行う手法は、高性能コンピューティングでよく見られる方法である。また、NVIDIA社のCUDAに代表されるGPU向けの開発環境が整備され、元々汎用的なプログラムの記述が困難であるGPU向けのプログラミングも手軽に行えるようになった。しかし、GPUで演算するためには、CPUとGPU間のデータ転送が必要であり、計算時間よりもデータの転送時間が大きい場合がある。CUDA2.2では、Memory Copy以外のデータ転送方式Zero Copy方式を用意した。データがCPU上のMapped Memoryに保存され、メモリのアドレス空間をCPUとGPU間でマッピングすることにより、GPUがCPUのメモリ上のデータを直接アクセスすることができ、CPUとGPU間のデータ転送時間の短縮が期待される。しかし、Zero Copy方式を使う際に、GPU側のメモリ内に保存されていないデータへのアクセス回数が多い場合、逆に性能が落ちる可能性がある。本研究では、CPUとGPU間のデータ転送時間の短縮を目指し、データアクセス回数を基づいて適切なデータ転送方式の選択手法を提案する。アクセス回数が2回以上のデータだけGPU側のメモリにMemory Copyにより転送してアクセスし、アクセス回数が1回のデータについてはZero Copy方式により転送する。さらに本研究では、Zero Copy方式のメモリ領域確保の方法と通常のデータ転送と違うため、コードの変更が必要となり、プログラマの負担となっている一点に着目し、より容易にデータ転送方式を変更できるCUDA APIを提案する。APIはプログラマの選択により、各データのメモリ領域申請や、必要に応じてデータ転送や、メモリ領域の解放などを自動的に行う。k-Nearest Neighbors問題の評価実験によって実行時間の比較を行った結果、提案したデータ転送方式と従来データ転送方式に比べて12%の実行時間の短縮ができた。また、API使用前後の実行時間の比較により、API使用時のオーバーヘッドは十分小さいことが示した。
机译:近年来,使用GPU的通用并行编程方法是在高性能计算中经常发现的方法。此外,以NVIDIA CUDA为代表的GPU的开发环境已得到改善,并且原本难以编写通用程序的GPU编程现在可以轻松执行。但是,在GPU上执行计算需要CPU和GPU之间的数据传输,并且数据传输时间可能比计算时间长。在CUDA2.2中,准备了数据复制方法“零复制”方法,而不是“内存复制”。数据存储在CPU的映射内存中,通过在CPU与GPU之间映射内存的地址空间,GPU可以直接访问CPU内存中的数据,从而可以减少CPU与GPU之间的数据传输时间。预计会缩短。但是,使用零复制方法时,如果对未保存在GPU侧内存中的数据的访问次数很高,则性​​能可能受到不利影响。在这项研究中,我们提出了一种基于数据访问次数选择合适的数据传输方法的方法,旨在减少CPU和GPU之间的数据传输时间。通过内存复制,只有被访问两次以上的数据才被传输到GPU侧的内存中,并且通过零复制方法传输一次已被访问的数据。此外,在这项研究中,由于零复制方法和常规数据传输的存储区保护方法不同,因此有必要更改代码,重点是给程序员带来负担的一点,并且更改数据传输方法更容易。建议可以做到这一点的CUDA API。 API会自动为每个数据选择存储区,并在必要时传输数据,并根据程序员的选择释放存储区。通过k最近邻问题的评估实验比较执行时间,与建议的数据传输方法和常规数据传输方法相比,执行时间减少了12%。另外,通过比较使用API​​之前和之后的执行时间,表明使用API​​时的开销足够小。

著录项

  • 作者

    沈 峻;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种 ja
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号