100 万列 x 100 万行のマトリックスがあります。
私のアルゴリズムは次のことを行う必要があります:
Matrix m = Matrix(rows,cols)
for (colB: cols){
vector currColA = m.getcolumn(colA)
for (colB: cols){
vector currColB = m.getcolumn(colB)
result = currColA.dotProduct(colB)
return result;
}}
または、次のように言うこともできます。
Vectors [] v = Vectors[]
for (i: v.length){
vector v1 = v[i]
for (i: v.length){
vector v2 = v[i]
result = v1.dotProduct(v2)
return result;
}}
私の質問: この問題のためにメモリを割り当ててメモリを初期化する適切な方法は何
ですか?
-または、ベクトルのリストにメモリを割り当ててから、このリストをループする必要がありますか?
-それとも??
私の懸念は、GPU への転送時間を最小限に抑えたいということです。JCublas の hello world の例を 2 つのベクトルでの sgemm 操作に変更して、この種の計算を試みましたが、多数のベクトルで実行すると、転送時間がかかり、gpu アクセラレーションの利点が失われました。
どうも!PS: 実装は任意の Java ライブラリにある可能性があります