CUDADot[cuvec1,cuvec2]
CUDAベクトル cuvec1と cuvec2のドット積を与える.
CUDADot[cumat,cuvec]
CUDA行列 cumat とCUDAベクトル cuvecの行列-ベクトル積を与える.
CUDADot[cumat,cuspvec]
CUDA行列 cumat とCUDA疎ベクトル cuspvecも行列-ベクトル積を与える.
CUDADot[cumat1, cumat2]
CUDA行列 cumat1 と cumat2の行列-行列積を与える.
CUDADot[cuspmat1, cuspmat2]
CUDA疎行列 cuspmat1 と cuspmat2の行列-行列積を与える.
CUDADot[cuspmat, cumat]
CUDA疎行列 cuspmat とCUDA行列 cumatの行列-行列積を与える.
CUDADot[vec1,vec2]
vec1 と vec2のドット積を与える.
CUDADot[mat,vec]
mat と vecの行列-ベクトル積を与える.
CUDADot[mat1, mat2]
gives the matrix-matrix product of mat1 と mat2の行列-行列積を与える.
CUDADot
CUDADot[cuvec1,cuvec2]
CUDAベクトル cuvec1と cuvec2のドット積を与える.
CUDADot[cumat,cuvec]
CUDA行列 cumat とCUDAベクトル cuvecの行列-ベクトル積を与える.
CUDADot[cumat,cuspvec]
CUDA行列 cumat とCUDA疎ベクトル cuspvecも行列-ベクトル積を与える.
CUDADot[cumat1, cumat2]
CUDA行列 cumat1 と cumat2の行列-行列積を与える.
CUDADot[cuspmat1, cuspmat2]
CUDA疎行列 cuspmat1 と cuspmat2の行列-行列積を与える.
CUDADot[cuspmat, cumat]
CUDA疎行列 cuspmat とCUDA行列 cumatの行列-行列積を与える.
CUDADot[vec1,vec2]
vec1 と vec2のドット積を与える.
CUDADot[mat,vec]
mat と vecの行列-ベクトル積を与える.
CUDADot[mat1, mat2]
gives the matrix-matrix product of mat1 と mat2の行列-行列積を与える.
詳細とオプション
- CUDALink パッケージがNeeds["CUDALink`"]でロードされていなければならない.
- CUDADotは,"Real64","ComplexReal64","Real32" ,"ComplexReal32"の型のCUDA行列とCUDAベクトルに対して使える.
- CUDADotは"Float","Double",…等の一般的な型に対してのみ使える.
- CUDADotは"Float[2]","Integer32[2]",…等の定数ベクトル構造体型に対しては使えない.
例題
すべて開く すべて閉じる例 (7)
Needs["CUDALink`"]cuvec = CUDAVector[Range[10], "Real64"];CUDADot[cuvec, cuvec]cumat = CUDAMatrix[Table[i, {i, 10}, {j, 10}], "Real64"];
cuvec = CUDAVector[Range[10], "Real64"];
res = CUDADot[cumat, cuvec];CUDAVectorの中身を見る:
Normal[Normal[res]]//MatrixFormcuspvec = CUDASparseVector[SparseArray[Table[{2 ^ i} -> 1., {i, 12}]]];cumat = CUDAMatrix[ConstantArray[1, {5, 2 ^ 12}], "Real64"];res = CUDADot[cumat, cuspvec]CUDAVectorの中身を見る:
Normal[Normal[res]]A = CUDAMatrix[RandomReal[1, {3, 3}]];
B = CUDAMatrix[RandomReal[1, {3, 3}]];res = CUDADot[A, B]CUDAMatrixの中身を見る:
Normal[Normal[res]]//MatrixForm2つのCUDA疎行列を掛けると,結果はCUDA疎行列になる:
sm = CUDASparseMatrix[SparseArray[Table[{2 ^ i, 2 ^ i} -> 2, {i, 4}]], "Real32"];res = CUDADot[sm, sm]CUDASparseMatrixの中身を見る:
Normal[Normal[res]]//MatrixFormCUDA疎行列にCUDA行列を掛けると,結果はCUDA行列になる:
cuspmat = CUDASparseMatrix[SparseArray[{{1, 1} -> 1., {2, 2} -> 2., {3, 3} -> 3., {4, 4} -> 4.}]];cumat = CUDAMatrix[ConstantArray[1, {4, 3}], "Real64"]res = CUDADot[cuspmat, cumat]CUDAMatrixの中身を見る:
MatrixForm[Normal[Normal[res]]]スコープ (3)
大きなベクトルの場合は,GPUで演算すると速くなる可能性がある:
Needs["CUDALink`"]data = RandomReal[1, {2 ^ 25}];
cudavector = CUDAVector[data, "Real64"];gpuRes = RepeatedTiming[CUDADot[cudavector, cudavector]]cpuRes = RepeatedTiming[Dot[data, data]]First[cpuRes] / First[gpuRes]"Real32"型のCUDAベクトルを使うとさらに改良される:
cudavector32 = CUDAVector[data, "Real32"];gpuRes32 = RepeatedTiming[CUDADot[cudavector32, cudavector32]]GPUで"Real32"型のCUDAベクトルのドット積を計算するとさらに早くなる:
First[cpuRes] / First[gpuRes32]CUDADot[{1., 2., 3.}, {1., 2., 3.}]CUDADotはCUDAMemoryをサポートする:
A = CUDAMemoryLoad[RandomReal[1, {3, 3}]];
B = CUDAMemoryLoad[RandomReal[1, {3, 3}]];res = CUDADot[A, B]CUDAMemoryGetを使うと,メモリが回復できる:
CUDAMemoryGet[res]//MatrixFormCUDAMemoryUnloadでメモリを解放しなければならない:
CUDAMemoryUnload[A, B]テクニカルノート
関連するガイド
-
▪
- CUDALink
テキスト
Wolfram Research (2010), CUDADot, Wolfram言語関数, https://reference.wolfram.com/language/CUDALink/ref/CUDADot.html.
CMS
Wolfram Language. 2010. "CUDADot." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/CUDALink/ref/CUDADot.html.
APA
Wolfram Language. (2010). CUDADot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/CUDALink/ref/CUDADot.html
BibTeX
@misc{reference.wolfram_2026_cudadot, author="Wolfram Research", title="{CUDADot}", year="2010", howpublished="\url{https://reference.wolfram.com/language/CUDALink/ref/CUDADot.html}", note=[Accessed: 04-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cudadot, organization={Wolfram Research}, title={CUDADot}, year={2010}, url={https://reference.wolfram.com/language/CUDALink/ref/CUDADot.html}, note=[Accessed: 04-September-2026]}