A10-7850KとかいうクソザコCPUを用意した。
https://github.com/HSAFoundation/HSA-Runtime-AMD/tree/master/sample
これの hsa_queue_store_write_index_relaxed() 〜 hsa_signal_wait_acquire() の間の時間が10usecぐらい。
CPU間でも同期オブジェクト経由でスレッド間通信したら10usecぐらいかかるから、GPUがCPUと同じレイテンシで呼べるようになってると言って良いのでは。
hsa_memory_registerはパフォーマンスのために必要なだけ(とどっかに書いてあった気がする)で、消しても動く。
つまり、これまでのAPU()と違ってまともに使って便利なレベルになったと理解してよいと思う。
あとHSAでは、メモリ経由で通信しても読み書きできるのが保証されてるはずだからメモリ経由で通信したときのレイテンシを計測すべき。(そのためにはHSAIL書かないといけないのだが…)