問題タブ [cublas]

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.

0 投票する
4 に答える
14455 参照

c - CUDA/cublasで行列を転置する方法は?

A*BGPU 上の次元の行列があるとします。ここで、 B(列数) は C スタイルを想定した主要な次元です。この行列を FORTRAN スタイルに転置する CUDA (または cublas) の方法はありますAか?

host->device元のデータを変更せずに、転送時に転置できるとさらに良いです。

0 投票する
1 に答える
1214 参照

c - cuBlas、cuda関数が機能せず、エラーは発生しません

これは、問題を示す最小限のプログラムです。Windows 7 で 128 個の CUDA コア、CUDA 5.0 を搭載した GTS 250 を使用しています。

次の出力は、データが GPU メモリに読み込まれている間、実際には操作が行われなかったことを示しています。

R の値: 0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、

CUBLAS の初期化に成功しました。

デバイスのメモリ割り当てに成功しました。

cublasSasum はエラーを生成しませんでした。dRの合計: 0

cublasSaxpy はエラーを生成しませんでした。

cublasSaxpy 後の R の値: 0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、

R で cudaMemset をゼロ設定してもエラーは発生しませんでした。

cudaMemset でゼロにした後の R の値: 0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、

どうしたの?(そしてハッピー ホリデー。:))

0 投票する
2 に答える
5559 参照

c - BLASのベクトルにスカラーを追加する(cuBLAS / CUDA)

明らかな何かを見落としているだけかどうかはわかりませんが、周りをグーグルで調べているにもかかわらず、BLAS操作を使用してベクトル(または行列)にスカラーを単純に追加する方法がわかりません。私はcuBLAS/CUDAでこれを実行しようとしているので、そのフレームワーク内でこれを達成するためのあらゆる方法を取ります。BLASに<t>scalはスカラー乗法(cublas<t>scal)がありますが、加算のアナログはどこにありますか?!つまり、GSLに類似したものですgsl_vector_add_constant。私は何が欠けていますか?

0 投票する
1 に答える
1954 参照

cuda - 行列にスカラーを掛ける

私はcudaとcublasの初心者です。

行列 (cublasSetMatrix を使用) の各要素にスカラー値を乗算したいと考えています。

そのために cublasscal() を使用できますか? ドキュメントには、ベクター用であると書かれています。

ありがとう。

0 投票する
1 に答える
3133 参照

cuda - cublasDgemmはCUBLAS_STATUS_EXECUTION_FAILEDを返します

cublasDgemmを使用して2つの行列を乗算しています。

cublasDgemmを使用して、出力へのポインターを返すメソッドを作成しました。

単体テストではうまく機能しているようですが、アプリケーションコードでは失敗します(リターンコードCUBLAS_STATUS_EXECUTION_FAILED)。

私は今何度もコードを調べましたが、すべて問題ないようです。とにかく、より良いエラーの説明を得るために何かありますか?

更新:2回目のcublasDgemm呼び出しはすべて機能するようです。最初にこのエラーが発生し、2番目に成功しました。何かアイデアはありますか?

Update2:これは私の電話です

ありがとう。

0 投票する
3 に答える
4928 参照

performance - 最大のパフォーマンスでCUDAの行列列を正規化する方法は?

CUDAで行列列を効果的に正規化するには?

私の行列は列優先で格納され、通常のサイズは 2000x200 です。

この操作は、次の matlab コードで表すことができます。

これは、Thrust、cuBLAS、および/または cuNPP によって効果的に実行できますか?

4 つのカーネルを含む迅速な実装を以下に示します。

特に cublasDgemv() によって実装される列の合計ステップのパフォーマンスを向上させるために、これらを 1 つまたは 2 つのカーネルで実行できるかどうか疑問に思っています。

0 投票する
1 に答える
344 参照

cuda - 例外 (最初のチャンス) ... メモリ内の cudaError_enum

そのため、いくつかの調査で問題がcublasライブラリにあることが示された後、そのエラーを吐き出すプロジェクトに取り組んでいます。

したがって、次の「最小限の」問題があります。

問題を再現できるかどうかをテストするために、NVIDIA CUDA SDK (4.2) から simpleCUBLAS の例を開きました。

プログラム自体は機能しますが、VS2010 でも同様の出力が得られます。

Eine Ausnahme (erste Chance) bei 0x75e3c41f in simpleCUBLAS.exe: Microsoft C++-Ausnahme: cudaError_enum an Speicherposition 0x003bf704..

7回

だから私の仕様に:

コンピューティングに GTX 460 を使用し、sm_20 でコンパイルして、Windows 7 64 ビットで VS2010 を使用し、nvcc --version を実行すると、次のようになります。

nvcc: NVIDIA (R) Cuda コンパイラ ドライバ Copyright (c) 2005-2011 NVIDIA Corporation Build on Fri_Jan_13_01:18:37_PST_2012 Cuda コンパイル ツール、リリース 4.1、V0.2.1221

ここに投稿するのはこれが初めてなので、投稿の形式がひどいもので申し訳ありません

0 投票する
2 に答える
4798 参照

cuda - CUDAの行列の行または列を減らす

cuBLAS行列演算を実行するためにCUDAを使用しています。

行列の行(または列)を合計する必要があります。現在、行列に1のベクトルを乗算して実行していますが、これはそれほど効率的ではないようです。

より良い方法はありますか?に何も見つかりませんでしたcuBLAS

0 投票する
1 に答える
6547 参照

cuda - cuBLAS howto での行列乗算の転置

問題は単純です: 私は 2 つの行列 A と B を持っています。これらは M × N であり、ここで M >> N です。最初に A の転置を取り、それを B (A^T * B) で乗算して、これを C に入れます。これは N x N です。A と B のすべてをセットアップしましたが、間違った答えを返さずに適切に cublasSgemm を呼び出すにはどうすればよいでしょうか?

cuBlas には、事前に転置するための cublasOperation_t 列挙型があることは理解していますが、どういうわけか、それを正しく使用していません。私の行列 A と B は行優先順、つまり [row1][row2][row3]..... デバイス メモリ内にあります。つまり、A が A 転置として解釈されるためには、BLAS は A が列優先順であることを認識する必要があります。私の現在のコードは以下のようになります:

私の質問:

m、k、n を正しく設定していますか?

lda、ldb、ldcはどうですか?

ありがとう!

0 投票する
2 に答える
398 参照

cuda - 隣接要素を含む推力ベクトル変換

ベクトルがあり、CUDA と Thrust 変換を使用して次のことを実行したいと考えています。

これを正しく実装するにはどうすればよいですか? 私ができる 1 つの方法は、ベクトル w を持ち、thrust::transform を v に適用し、結果を w に保存することです。しかし、k は前もって不明であり、w1、w2、... を作成して多くの GPU メモリ スペースを浪費したくありません。できれば、データのコピー量を最小限に抑えたいと考えています。しかし、値が互いに踏み込まずに1つのベクトルを使用してこれを実装する方法がわかりません。これを行うことができるスラストが提供するものはありますか?