CUDADot
CUDADot[cuvec1,cuvec2]
gives the dot product of CUDA vectors cuvec1 and cuvec2.
CUDADot[cumat,cuvec]
gives the matrix-vector product of CUDA matrix cumat and CUDA vector cuvec.
CUDADot[cumat,cuspvec]
gives the matrix-vector product of CUDA matrix cumat and CUDA sparse vector cuspvec.
CUDADot[cumat1, cumat2]
gives the matrix-matrix product of CUDA matrices cumat1 and cumat2.
CUDADot[cuspmat1, cuspmat2]
gives the matrix-matrix product of CUDA sparse matrices cuspmat1 and cuspmat2.
CUDADot[cuspmat, cumat]
gives the matrix-matrix product of CUDA sparse matrix cuspmat and CUDA matrix and cumat.
CUDADot[vec1,vec2]
gives the dot product of vec1 and vec2.
CUDADot[mat,vec]
gives the matrix-vector product of mat and vec.
CUDADot[mat1, mat2]
gives the matrix-matrix product of mat1 and mat2.
Details and Options
- The CUDALink application must be loaded using Needs["CUDALink`"].
- CUDADot works on CUDA matrix and CUDA vectors of types "Real64", "ComplexReal64", "Real32" and "ComplexReal32".
- CUDADot works only on general vectors types such as "Float", "Double", ….
- CUDADot does not work on fixed vector structure types like "Float[2]", "Integer32[2]", ….
Examples
open allclose allBasic Examples (7)
First, load the CUDALink application:
This performs the dot product:
This performs matrix-vector multiplication:
Contents of CUDAVector:
Multiply a CUDA matrix and a CUDA sparse vector
Contents of CUDAVector:
Multiply two CUDA matrices, result is a CUDA matrix:
Contents of CUDAMatrix:
Multiply two CUDA sparse matrices, result is a CUDA sparse matrix:
Contents of CUDASparseMatrix:
Multiply CUDA sparse matrix with CUDA matrix, result is a CUDA matrix:
Contents of CUDAMatrix:
Scope (3)
For large vectors, performing operations on the GPU can be quicker.
This creates a large CUDA vector of type "Real64":
This performs dot product on the GPU and measures timing:
This performs dot product on the CPU and measures timing:
Performing dot product on the GPU is faster:
Performance can be improved by using CUDA vector of type "Real32":
Performing dot product of CUDA vector of "Real32" on GPU is even faster:
CUDADot works with vectors in list form:
CUDADot supports CUDAMemory:
This multiplies the two input memories together :
Memory is retrieved using CUDAMemoryGet:
Text
Wolfram Research (2010), CUDADot, Wolfram Language function, 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