public void GlobalSetup() { var getMatrixIndex = new Func <int, int, long>((row, col) => row * MatrixSize + col); var matrixSizePow = MatrixSize * MatrixSize; A = new float[matrixSizePow]; B = new float[matrixSizePow]; C = new float[matrixSizePow]; for (int i = 0; i < MatrixSize; i++) { var oneDIndex = getMatrixIndex(i, i); A[oneDIndex] = B[oneDIndex] = C[oneDIndex] = 1.0f; } A_CUDA = CUDAMatrixMultiplicationWrapper .AllockMatrix( MatrixSize ); B_CUDA = CUDAMatrixMultiplicationWrapper .AllockMatrix( MatrixSize ); C_CUDA = CUDAMatrixMultiplicationWrapper .AllockMatrix( MatrixSize ); }
public void CUDASecondMultiply() { CUDAMatrixMultiplicationWrapper .Multiply1d( A, B, C, MatrixSize ); }
public void CUDASecondMultiplyWithoutCopy() { CUDAMatrixMultiplicationWrapper .Multiply1dWithoutCopy( A_CUDA, B_CUDA, C_CUDA, MatrixSize ); }
public void CUDAFirstMultiply() { CUDAMatrixMultiplicationWrapper .Multiply1d( A, B, C, MatrixSize, MatrixSize, MatrixSize ); }