はじめに
いつものように、github を散歩していたら、AMD OpenCL Runtime のソースコードが github にあるのを知りました。
現在は、ROCm-Developer-Tools に移動して、下記にあります。
下記のように、OpenCL だけでなく、HIP もあります。
- hipamd - contains implementation of HIP language on AMD platform. Previously this was hosted at ROCm-Developer-Tools/hipamd
- opencl - contains implementation of OpenCL™ on AMD platform. Previously this was hosted at RadeonOpenCompute/ROCm-OpenCL-Runtime
- rocclr - contains common runtime used in HIP and OpenCL™. Previously this was hosted at ROCm-Developer-Tools/ROCclr
OpenCL を眺めてみる
Kernel実行部分 (clEnqueueNDRangeKernel) を眺めてみた。
下位で、ROCclr - Radeon Open Compute Common Language Runtime を使っているようです。
command->enqueue();
command->enqueue は、ここで定義されています。
また、Pipeも実装されているようですね。
おわりに
AMD CLR - Compute Language Runtimes は、hipamd と opencl があるのなら、cuda も作っちゃえ、と思うのですが、それって、できないのでしょうかね。
そのために、HIPIFY が用意されているようですが。