
HMPPではディレクティブ中でターゲット(CUDAもしくはOpenCL)を指定することで、GPUコードを生成します. そのため、1つのオリジナルのコードからCUDAかOpenCLのコードを生成することができ、プラットフォームが変わっても対応することが可能です.
HMPPで作成したアプリケーションはHMPPランタイムを利用しており、ランタイムを利用することによって柔軟な構成が可能になります. 例えばHMPPで作成したアプリケーションを実行するときにGPUが使用できない場合でも、ランタイムがGPUを使えないことを判別してCPU上で実行します.また、ランタイムがリソースの管理を行っているためマルチCPU、マルチGPUに移行させることも可能です.
HMPPライセンスは、HMPPコンパイル時だけ必要でバイナリ実行時には不要です(RUNTIMEフリー).
|