2

OpenCL を使用して GPU でフル スケールのプログラムを実行しようとするプロジェクトに取り組むようクライアントからアプローチされました。

私は CUDA と低レベルのマシン アーキテクチャについて十分な知識を持っています。私が理解している限り、GPU コードにはコール スタックもポインターも、goto、例外、関数ポインターなどの構造化されていない制御フロー メカニズムもありません。私には、セマンティクスの点で初歩的な FORTRAN の方言に似ています。別の GPU カーネルから呼び出された GPU カーネルは、マクロ展開のようにインライン化されることを知っています。CALL/RET メカニズムはありません。

私が理解している限りでは、スタックなしでレキシカル スコープの言語を使用することはできず、OpenCL がコンパイルする方言は C の非常にフラットなサブセットであり、同様に CUDA であり、テンプレートなどを許可する一方で、C++ の非常に小さなサブセットしか提供しません。

クライアントは、Javascript から C、LLVM、さらに OpenCL バイトコードに変換するか、並列処理なしで実行速度が遅い場合でも、フル スケールのプログラムを GPU で実行したいと考えています。

クライアントが達成したいことは技術的に不可能であり、実際には役に立たないことをクライアントに納得させるのは正しいでしょうか?

4

0 に答える 0