2016-07-24 19 views
4

私は現在、計算集約型プロジェクトのUnreal Engineのユーザビリティを研究しており、Googleはあまり役に立ちませんでした。Unreal Engineを使用した並列計算4

OpenMPを使用して現在実装されているプロジェクトでは、ゲームループのバックグラウンドで重い計算が必要です。流体シミュレーション。

Visual Studioを使用してUnreal Engineをコンパイルおよびビルドすると、Visual Studioコンパイラの機能がサポートされるはずですが、OpenMPの適切な設定でUEをコンパイルできるかどうかは不明です。 また、おそらくメモリアロケータの部分だけでも、おそらく既にUEで使用されているビルディングブロックTBBをスレッドするIntelsでこの作業を簡単に行うことはできますか?

一般的に、私は自分の疑問は、UEとのクロスプラットフォームの高度に並列化された計算がサポートされていることです。利用可能なすべてのコアで多数の同じ計算を実行する必要がある場合、UEでどのように実行しますか? 私はいくつかのスレッドを手作業で作成し、ブロックコードでそれらを実行し、参加して完了するのを待っています。私は私の目的のためにparallel_forループを好むでしょう。

さらに、UEの「スクリプト」内からCUDAやOpenCLなどの他のフレームワークを使用することがどれほど簡単かと思います。

高性能のためにC++で書かれたネイティブdllの周りにC#ラッパーを作ったUnityから来ましたが、C#でこのラッピングネイティブを少し疲れさせています。しかし、それ自体が私のC++コードでできることに制限があるなら、それほど助けにはなりません...私はそれがすべてうまくいくと思いますが、私は方法を学ぶと思っていますが、私はちょっと分かりません。 任意上記の質問のいずれかに関する情報。 「平行」という言葉を持つものは、一般に青写真につながります。

答えて

2

ここで定義されたUEでParallelFor()、あります: "エンジン\ソース\ランタイム\コア\公開\非同期\ ParallelFor.h"

署名は使用例がで簡単に見つけることができvoid ParallelFor(int32 Num, TFunctionRef<void(int32)> Body, bool bForceSingleThread = false)

ですが、ソースコード。

+0

エンジンで使用されていますが、Unreal Engine 4とParallelForをオンラインで検索しても絶対に情報はありません。それは私には奇妙に思える。あなたはそれがパーフォレーションであり、デベロッパー向けのものであると確信していますか? – JoeTaicoon

+1

@JoeTaicoonうん、私はそれが動作していると思います。そして、それは開発者が使用するためのものですが、コードベース全体が開発者のために使用されているとは言えませんが、その一部は十分に文書化されていません。 Unrealの魔法のほとんどはオンラインではなく、ソースコード内にしかないので、コードを慎重に読む必要があります。 –

関連する問題