2012-01-18 9 views
3

ローダコンパイラでのcudaのサポートの程度について知りたいと思います。私は、cudaのソーストランスレータをビルドしようとしています。 Roseコンパイラを使用することは可能ですか?どのローズコンパイラのディストリビューションを使用しますか?ローダコンパイラを使用したCudaソースからソースへの変換

これは先に(バラコンパイラのcudaのサポートについて)議論されていますが、私はcudaサポートがあるかどうかを理解できません。ローズユーザーマニュアルにも多くの情報がありません。

答えて

1

Roseには、C++フロントエンドとFortranフロントエンドがあり、合理的に統合されているようです。 Roseシステムの設計IMHOは、他のフロントエンドパーサ(たとえば、Cudaを解析する必要があるかもしれないなど)を簡単に統合することはできませんが、十分な努力を払ってそれを行うことができます。 (RoseはもともとはC++のみを持ち、Fortranは移植されていました)。 RoseマニュアルにCudaの明示的な言及が表示されていない場合は、単純にそこに存在しないため、かなり好きです。

ソースからソースへの変換を使用してCudaを処理するには、Cudaパーサーとローズのような適切な変換機械のセットが必要です。

私はあなたにCudaパーサーを提供することはできませんが、私の会社は産業力のあるソースからソースへのプログラム変換システムをDMS Software Reengineering Toolkitという形で提供しています。

DMSは大規模なC++システムで大規模な変換を実行するために使用されているので、少なくともその目的のためにRoseと同等の能力を持っていると言うのはかなり合理的だと思います。 DMSはまた、非常に大きなCやFortranシステムや、Java、C#、ECMAScript、PHP、その他の言語の他のコードを処理するために使用されているので、DMSに別のフロントエンドを統合するのはかなり簡単です。

私が理解しているように、CudaはC99の派生品です。 DMSにはCフロントエンドがあり、さまざまなC言語の方言を明示的にサポートしています。 C99のほとんどは既に方言メカニズムを使用して構築されています。それはかなり良い出発点かもしれません。

ANTLRなどの他のツールを試すこともできますが、ANTLRとRoseとDMSは複雑なシステムを解析、分析、変換する能力が非常に異なるリーグになります。実際のコード。