OpenCLリファレンスの日本語訳
About
OpenCL 入門コンテンツ「C# ではじめる OpenCL」であつかわれる OpenCL の関数を、日本語訳したものをまとめています。必ずしも直訳ではありませんし、翻訳が正しいものであることも保証できません。
翻訳しているリファレンスのバージョンは OpenCL - v1.2 です。バージョン間の差異については確認していませんし、継続的なドキュメントの更新も予定していません。
C# からの利用について
C# では一部の変数の解説について適切でないことに注意してください。"NULLを指定することができる"、"NULLを指定するとき"、などの記述が主な該当箇所になります。例えば、引数の型が uint や int であり、リファレンスに NULL を指定することができる記述があった場合でも、C# で実装されるラッパーメソッドでは、NULL を指定することができません。
これは uint や int が値型であることに起因します。同様に、列挙型や構造体も値型であるため、例えば引数の型が IntPtr などの場合も、NULL を指定することができません。代わりに、IntPtr.Zero を利用します。
OpenCL の関数を DLLImport によって定義する際に、IntPtr? などの型で定義すると、NULL を指定することができるようにはなりますが、マーシャリング (C# - C 間での型変換) できずにエラーが発生する点に注意してください。