2

私は CUSPARSE 関数を使用して、スパース行列ベクトル/行列行列乗算を実行しています。

スパース行列は CSR 形式で保存されます。Visual Profiler でアプリをプロファイリングしているときに、cusparse(S/D)csrmv または cusparse(S/D)csrmm への呼び出しごとに、メモリ割り当て/memset/コピーがあることに気付きました。

プロファイラーでカーネル名を見ると、CUSPARSE が各呼び出しで行列を CSR 形式から HYB 形式に変換しているように見えますが、これは私の場合、計算を開始する前に正しい形式で行列を作成できるため、時間の無駄です。

CUSPARSE には行列 - ベクトル乗算 (hybmv) の HYB バージョンがありますが、対応する行列 - 行列乗算のバージョンはなく、CSR 形式のみがサポートされているようです。

CUSPARSE で行列 - 行列 muls を実行するときに行列変換を回避することは可能ですか?

4

1 に答える 1