問題タブ [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.
cuda - CPUとしてのGPUの実現可能性?
CUDAのようなCPUイニシアチブとしてのGPUの将来はどうなると思いますか?彼らは主流になり、業界で次に採用される流行になると思いますか?Appleは、GPUを使用してCPUタスクを実行するための新しいフレームワークを構築しており、科学分野のNvidiasCUDAプロジェクトで多くの成功を収めています。学生がこの分野に時間を費やすことを提案しますか?
cuda - CUDA によるレイトレーシング
現在、レイトレーサーを実装しています。レイトレーシングは非常に計算量が多いため、とにかく CUDA プログラミングを検討する予定であるため、2 つを組み合わせた経験がある人がいるかどうか疑問に思っていました。計算モデルが一致するかどうかはわかりませんが、何が期待できるか知りたいです。私はそれがまさに天国で行われた試合ではないという印象を受けますが、まともな速度の増加は何もないよりはましです.
cuda - 一般的なプログラミング タスクはどの程度 GPU に変換されますか?
私は最近、一般的なプログラミングに最新のグラフィックス カードで利用できる処理能力を最大限に活用する方法を確立するためのプロジェクトに取り組み始めました。フィールド汎用 GPU プログラミング (GPGPU) は、GPU 計算モデルにうまく適合するため、多くの重い数学を使用する科学的アプリケーションに大きな偏りがあるようです。これはすべて良いことですが、ほとんどの人はシミュレーション ソフトウェアなどの実行にすべての時間を費やしているわけではないため、大衆向けの GPU 対応ソフトウェアを簡単に構築するための共通の基盤を作成できるのではないかと考えました。
これは、私が提起したい質問につながります。プログラムによって実行される最も一般的な種類の作業は何ですか? 作業が GPU プログラミングに非常にうまく変換される必要はありません。パフォーマンスのわずかな改善は喜んで受け入れます (何もしないよりは少しでも良いでしょう?)。
すでに考えているテーマがいくつかあります。
- データ管理 - データベースなどからの大量のデータの操作。
- 表計算形式のプログラム (上記と多少関連があります)。
- GUI プログラミング (関連するコードにアクセスすることは不可能かもしれませんが)。
- 並べ替えや検索などの一般的なアルゴリズム。
- 共通コレクション (およびデータ操作アルゴリズムとの統合)
他に非常に一般的なコーディング タスクはどれですか? 書かれているコードの多くは、在庫管理や実際の「オブジェクト」の追跡のカテゴリのものではないかと思います。
私は業界での経験がないので、自分が思っているよりも頻繁に行われているが、外部製品として具体化されていない基本的なタイプのコードがいくつかあると考えました。
高レベルのプログラミング タスクと特定の低レベル操作の両方が高く評価されます。
cuda - GPGPU の使用に成功しましたか?
nVidia CUDAなどを使用してGPGPUを利用するアプリケーションを作成した人がいるかどうか知りたいです。もしそうなら、どのような問題を発見し、標準の CPU と比較してどのようなパフォーマンスの向上を達成しましたか?
cuda - デバイス メモリに割り当てられた CUDA グローバル (C のような) 動的配列
そのため、Nvidia の CUDA アーキテクチャを利用するコードを書き込もうとしています。デバイスとの間でコピーを行うと、全体的なパフォーマンスが大幅に低下することに気付きました。そのため、現在、大量のデータをデバイスに移動しようとしています。
このデータは多くの機能で使用されるため、グローバル化してほしいと考えています。はい、ポインターを渡すことができますが、この場合にグローバルを操作する方法を知りたいです。
そのため、デバイスに割り当てられた配列にアクセスしたいデバイス関数があります。
理想的には、次のようなことができます。
ただし、動的配列を作成する方法がわかりません。次のように配列を宣言することで、回避策を見つけました。
それには cudaMalloc 呼び出しは必要ありませんが、私は動的割り当てアプローチを好みます。
c# - C# メソッドを C++ メソッドに変換する
GPU で実行するために、一般的な C# コード構造を C++ CUDA コードにマッピングするためのさまざまなオプションを検討しています。システムの構造は次のとおりです (矢印はメソッド呼び出しを表します)。
C# プログラム -> C# GPU ライブラリ -> C++ CUDA 実装ライブラリ
GPU ライブラリのメソッドは次のようになります。
これは、各要素に対して関数を実行する ICollection<> 型の拡張メソッドです。ただし、私がやりたいことは、C++ ライブラリを呼び出して、GPU でメソッドを実行させることです。これには、何らかの形で関数を C++ コードに変換する必要があります。これは可能ですか?
詳しく説明すると、私のライブラリのユーザーが任意のコードを含むメソッドを (C# で) 実行した場合、このコードを CUDA で実行できるように C++ の同等のものに変換したいと考えています。これを行う簡単な方法はないと感じていますが、それを行う方法、または同じ効果を達成する方法があるかどうかを知りたい.
私が疑問に思っていたことの 1 つは、式で変換する関数をキャプチャし、これを使用して C++ の同等物にマップすることです。誰でもこれについて経験がありますか?
concurrency - すでに作成された並行プログラムをGPUアレイで実行するにはどうすればよいですか?
私はErlangで書かれたニューラルネットワークを持っていて、240コアのGPUを搭載したGeForceGTX260カードを購入しました。グラフィックカードでこれを実行するための接着剤としてCUDAを使用するのは簡単ですか?
c++ - 任意の値型の操作
この記事では、C# で + 演算子が定義された任意の値型を追加できるようにする方法について説明します。本質的に、次のコードを許可します。
T 型に '+' 演算子の定義があるという保証がないため、このコードはコンパイルされませんが、次のようなコードで効果が得られます。
リンクをたどって、Num クラスがこれをどのように実現しているかを確認してください。とにかく、質問に進みます。C または C++ で同じ効果を達成する方法はありますか? 好奇心旺盛な人のために、私が解決しようとしている問題は、より多くの型で動作できるようにすることで、CUDA カーネルをより柔軟/一般的にできるようにすることです。
更新: .NET については、Marc Gravell が、演算子の問題を非常にエレガントに解決するユーティリティ ライブラリを作成しました。
directx - 今すぐ CUDA アプリを作成するべきですか、それとも DirectX 11 を待つべきですか?
Windows 7 はおそらく来年の 10 月に RTM に移行する (そして DirectX 11 も) ので、DirectX 11 の明示的な GPGPU 機能、つまりクロスプラットフォーム (Windows/Linux/Mac/Whatever ではなく ATI/Nvidia) になるのを待つ価値があるでしょうか? ; または、今CUDAアプリケーションを作成する必要がありますか?
.net - .net の CUDA?
PyCUDA などの多くの CUDA 言語バインディングがあることは知っていますが、.Net 用の適切なバインディングはありますか? 私が見たのはこれだけですが、他にもあるなら知りたいです。