0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GPU上で動作可能なコンパイラ Co-dfns

Last updated at Posted at 2023-07-13

はじめに

APLとはソースコードがこういう見た目の言語です。(ライフゲーム、Dyalog版)

life←{
    ↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵  ⍝ Expression for next generation.
}

詳しくは、

  • Wikipedia日本語版

  • Wikipedia英語版

GPU上で動くコンパイラ

コンパイラをCPUではなくGPU上で動して何らかのメリットが生まれるためには、少なくとも以下の2つの条件を満たす必要があります。
・基本的に全て並列処理(GPUの高速性は処理の並列化によってもたらされます)
・基本的に条件分岐はしない(GPUはCPUよりも条件分岐がかなり苦手です)

APLはその仕様からこの条件を満たす事が可能なため、GPU (現在はCUDAとOpenCLに対応)上で動作可能な異常に高速なコンパイラCo-dfnsが、Dyalog社のAaron Hsuによって開発されています。

Co-dfns

Co-dfnsコンパイラはAaron Hsuがインディアナ大学の大学院在学時代に開発が始まりました。

まだ開発中ですが、実際に試す事ができます。
実際にコードをコンパイルして試すためにはDyalogとArrayFireが必要ですがRelease版はWindows、Linux、 macOSに対応しています。

応用例

  • U-Net CNN in APL
    APLによって実装されたフレームワーク、ライブラリ不要の機械学習です。
    論文を読むにはPDFをクリックしてください。(論文の最後の方にソースコードもついています)

おわりに

古くて新しいAPLという言語の魅力を知ってもらえれば嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?