問題タブ [cuda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2008 - 64ビット用にコンパイルしたときにGLUTアプリを起動するときにエラーが発生しました
私はGLUTアプリの骨組みを持っています。Win32用にコンパイルすると正常に動作しますが、x64用にコンパイルすると次のエラーが発生します。
The application was unable to start correctly (0xc000007b). Click OK to close the application.
リンカーのglut64.lib
入力として、nVidiaCUDAsdkから取得します。"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib"
OpenGLをCUDAと組み合わせて使用したいのですが、このベアボーンアプリにはCUDAへの参照がありません。VisualStudio2008をWindows764ビットで実行しています。
あなたが提供できるどんな洞察も高く評価されます。
Main.cpp:
random - CUDA の二項ランダム変量ジェネレーター
私の問題は次のとおりです。
CUDA で二項分布を使用して、多数の乱数を並行して生成する必要があります。CUDA のすべての乱数ジェネレーターは (私の知る限り) 一様分布に基づいています。二項分布のすべてのアルゴリズムは一様変量を使用する必要があるため、これも便利です。
CUDA で二項確率変量を生成するためのライブラリまたは実装はありますか? http://acs.lbl.gov/~hoschek/colt/に JAVA 用があるようですが、非常に複雑なアルゴリズムを使用して並列化されています。ただし、B(N,p) に続く二項変量を考えると、複雑さの順序が O(N) のより単純なアルゴリズムがありますが、N が大きくなる可能性があるため (整数の場合は最大で 2^32 前後)、私にとっては悪いことです。
助けていただければ幸いです。どうもありがとう。ミゲル
PS: 下手な英語でごめんなさい:)
c - CUDAで2つの三角形の間の角度を計算します
3D空間で2つの三角形の間の角度を計算したかったのです。2つの三角形は、常に正確に2つのポイントを共有します。例えば
三角形1:
三角形2:
CUDAでそれらの間の角度を効率的に計算する方法はありますか?
c - CUDAメモリを解放するのは痛々しいほど遅い
を使用して、GPUにいくつかのfloat配列(かなり大きい、つまり9,000,000要素)を割り当てていますcudaMalloc((void**)&(storage->data), size * sizeof(float))
。プログラムの最後に、を使用してこのメモリを解放しますcudaFree(storage->data);
。
問題は、最初の割り当て解除が非常に遅く、約10秒であるのに対し、他の割り当て解除はほぼ瞬時に行われることです。
私の質問は次のとおりです:この違いを引き起こす可能性があるのは何ですか?GPUの割り当て解除メモリは通常それほど遅いですか?
c - NVAPI デバイス ID は CUDA デバイス ID とどのように関連していますか?
GPUのコア温度も監視するCUDAアプリケーションの取得に取り組んでいます。その情報は NVAPI 経由でアクセスできます。
問題は、コードを実行しているのと同じ GPU を監視していることを確認したいということです。
NvAPI_EnumPhysicalGPUs
ただし、私が取得したデバイス IDが で使用されているものと一致しないことを示唆する情報があるようSetDeviceId
です。
誰でも明確にできますか?
c++ - CUDA__global__関数内のprintf
現在、GPUで行列乗算を記述していて、コードをデバッグしたいのですが、デバイス関数内でprintfを使用できないため、その関数内で何が起こっているかを確認するために他にできることがあります。これは私の現在の機能です:
AdとBdが私が思っているものであるかどうかを知り、その関数が実際に呼び出されているかどうかを確認したいと思います。
performance - スクリーンセーバーはCUDAのパフォーマンスを損ないますか?
スクリーンセーバーが起動した瞬間に、CUDAカーネルの実行時間がほぼ3倍になることに気づきました。これは、空白のスクリーンセーバーであっても発生します。
奇妙なことに、これは電源設定とは何の関係もないようです。スクリーンセーバーを無効にして画面の電源をオフにしても、パフォーマンスは変わりません。「モニターをオフにする」を「しない」に設定し、スクリーンセーバーを起動させると、それが発生します。
なぜこれが起こるのですか?
この現象に対抗する方法はありますか?
スクリーンセーバーを起動しないようにウィンドウに指示する方法はありますか?(メディアプレーヤーはどのようにそれを行いますか?)
XPSP2x64に取り組んでいます
c++ - CUDA アプリで最適な速度でデータを構造化する方法
CUDA を利用して粒子位置の更新を行う単純な粒子システムを作成しようとしています。現在、3 つの float 値で定義された位置と、3 つの float 値で定義された速度を持つオブジェクトを持つパーティクルを定義しています。パーティクルを更新するときは、速度の Y コンポーネントに定数値を追加して重力をシミュレートし、現在の位置に速度を追加して新しい位置を見つけます。メモリ管理の観点からは、データを格納するため、またはオブジェクト指向の方法で構造化するために、float の 2 つの別個の配列を維持する方が適切です。このようなもの:
データのサイズはどちらの方法でも同じようです (フロートごとに 4 バイト、ベクターごとに 3 つのフロート、パーティクルごとに 2 つのベクター、合計 24 バイト)。 GPU は、2 つの代わりに 1 つのメモリ コピー ステートメントを使用できるためです (そして、長期的には、年齢、寿命、重量/質量、温度など、関連する粒子に関する他のいくつかの情報があるため)。そして、コードの単純な読みやすさと扱いやすさもあり、オブジェクト指向アプローチに傾倒しています。しかし、私が見た例は構造化データを利用していないので、何か理由があるのだろうかと思います。
問題は、データの個々の配列と構造化オブジェクトのどちらが優れているかということです。
algorithm - 行列のヌル空間をできるだけ速く計算する
数千の小さな行列 (前に書いたように 4x3 ではなく 8x9) の nullspace を並列に計算する必要があります (CUDA)。すべての参照はSVDを指していますが、数値レシピのアルゴリズムは非常に高価に見え、実際には必要のないnullスペース以外に多くのものを与えてくれます. ガウスの消去法は本当にオプションではないのですか? 他に一般的に使用される方法はありますか?
c++ - nvidia cuda カーネルで配列を作成する
こんにちは、nvidia cudaカーネル内で次のことが可能かどうか知りたいだけです
または次の