2024-03-29T05:35:07Zhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_oaipmhoai:ipsj.ixsq.nii.ac.jp:000755582023-04-27T10:00:04Z01164:02240:06352:06493
GPGPUにおけるデータ転送自動化コンパイラの設計Automatic generation of data transfer code for GPGPU compilerjpnGPUhttp://id.nii.ac.jp/1001/00075558/Technical Reporthttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=75558&item_no=1&attribute_id=1&file_no=1Copyright (c) 2011 by the Information Processing Society of Japan三重大学大学院工学研究科三重大学大学院工学研究科三重大学大学院工学研究科三重大学大学院工学研究科道浦, 悌大野, 和彦佐々木, 敬泰近藤, 利夫近年の GPU の演算性能の向上により,GPU 上で汎用演算を実行させる GPGPU への関心が高まっている.また,nVIDIA 社から開発環境である CUDA がリリースされるなど,GPU プログラミングは容易になりつつある.しかし CUDA を用いても,GPGPU では,メインメモリ・デバイスメモリ間のデータ転送をプログラマが明示的に記述する必要がある.そこで本論文では,GPGPU におけるデータ転送処理を自動化するコンパイラを提案する.本コンパイラは CUDA コードに対して,データ転送コードを自動的に生成する.これにより,プログラマの開発の負担を軽減させる.また,CUDA はデータ転送のオーバヘッドを低減させるために,カーネルの実行とデータ転送のオーバラップが可能なストリーム機能を用意している.そこで,本コンパイラはこのストリーム機能を適切な箇所で用いることによって,プログラムの実行効率を高めている.本コンパイラの性能を示すために提案する手法に基づく想定出力コードを作成し,最適化したコードと実行時間を比較し,評価を行った.その結果,評価に用いた暗号読解プログラムの場合,おおよそ 1 秒程度のオーバヘッドに留まった.This paper presents a compiler which automatically generates data transfer code for GPGPU. The user does not need to specify data transfer functions of CUDA, reducing the burden of GPGPU programming. The data transfer time is often large overhead using GPU and decline the performance, sometimes slower than using CPU. However, the data transfer can be overlapped with the execution of kernels on GPU, and our compiler automatically utilize this feature. We hand-compiled a cryptanalysis program using the scheme of our compiler and compared with hand-optimized equivalent code. The difference of performance was approximately 1 second.AN10463942研究報告ハイパフォーマンスコンピューティング(HPC)2011-HPC-13017192011-07-202011-07-27