問題タブ [opencl.net]
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.
c# - タイプ 'System.AccessViolationException' の未処理の例外が OpenCLNet.dll で発生しました
タイプ 'System.AccessViolationException' の未処理の例外が OpenCLNet.dll で発生しました
@
プラットフォーム テスト = 新しいプラットフォーム (platformid); 「platformID」の値は実行時に 1 です。
PlatfromID または platfromid を正しく取得していますか?
opencl - AMD OpenCL C コンパイラは、死んで削除されるべきではない、死んで削除されたループを記録します
OpenCl カーネルで次のループを実行しています。
明らかにわかるように、ループは arrayA に含まれる値を要約します。#pragma unroll
ここで、ループ実行とアンロール実行の間にパフォーマンスの違いがあるかどうかを確認したかったのです。
しかし、カーネルをコンパイルするLOOP UNROLL: pragma unroll (line X) ignored because this loop is dead and deleted.
と、ループ内のコードが確実に実行されるため、コンパイラはその情報を理解していないと指摘します。MAX_A と MAX_B は確実に 0 より大きく、valueA に保存された合計もループ後に使用されます。
コードのどこかに同じ構造があり、この位置は上の音符でマークされています。
私が使用するコンパイラは、APP SDK によって提供される AMD OpenCL C コンパイラです。
c# - OpenCL.net を使用して作成された IMem オブジェクトを破棄する正しい方法
OpenCL.Net (v2.2.9) によって作成された IMem オブジェクトを明示的に破棄すると、メモリ破損の問題が発生します。IMem.Dispose()
ビデオ カードのメモリを呼び出さないと解放されません。
残念ながら、この件に関する例はほとんど見つかりませんでした。ここでは への 1 回の呼び出しenv.Dispose()
が実行されます。
私のコードは次のようなものです:
メモリの破損を避けるために、問題の原因となっている行をコメントアウトする必要がありますが、ビデオ カードのメモリ消費量が常に増加しています。
編集:同じバッファを再利用して、反復中のオブジェクトの破棄を回避して問題を部分的に解決しました。それでも、自分が何を間違っていたのか理解できません。