22 #include <cuda_runtime_api.h> 23 #include <cublas_v2.h> 39 template<
typename Real>
47 template<
typename Real>
50 if (CuDevice::Instantiate().Enabled()) {
57 this->
Mat().Cholesky(orig.
Mat());
62 template<
typename Real>
65 if (CuDevice::Instantiate().Enabled()) {
73 cuda_set_diag(dimGrid, dimBlock, tmp.
Data(), alpha, tmp.
Dim());
74 CU_SAFE_CALL(cudaGetLastError());
77 CUBLAS_SAFE_CALL(cublas_trsm(GetCublasHandle(), dim, dim, alpha, tmp2.
Data(), tmp2.
Dim().
stride,
80 CuDevice::Instantiate().AccuProfile(__func__, tim);
88 template<
typename Real>
92 if (CuDevice::Instantiate().Enabled()) {
95 if (num_rows == 0)
return;
100 cuda_take_lower(dimGrid, dimBlock, M.
Data(), this->
data_, M.
Dim());
102 cuda_take_upper(dimGrid, dimBlock, M.
Data(), this->
data_, M.
Dim());
104 CU_SAFE_CALL(cudaGetLastError());
105 CuDevice::Instantiate().AccuProfile(__func__, tim);
109 Mat().CopyFromMat(M.
Mat(), Trans);
129 template <
class Real>
const MatrixBase< Real > & Mat() const
This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for...
MatrixIndexT NumRows() const
void CopyToPacked(PackedMatrix< Real > *dst) const
This class represents a matrix that's stored on the GPU if we have one, and in memory if not...
void Cholesky(const CuSpMatrix< Real > &Orig)
const SpMatrix< Real > & Mat() const
void Cholesky(CuMatrixBase< Real > *inv_cholesky=NULL)
This function does sets *this to the Cholesky factor of *this (i.e.
CuTpMatrix< Real > & operator=(const CuTpMatrix< Real > &in)
const Real * Data() const
Return data pointer (const).
Matrix for CUDA computing.
MatrixIndexT NumCols() const
#define KALDI_ASSERT(cond)
void CopyFromTp(const CuTpMatrix< OtherReal > &M, MatrixTransposeType trans=kNoTrans)
Matrix for CUDA computing.
void Resize(MatrixIndexT nRows, MatrixResizeType resize_type=kSetZero)
Set packed matrix to a specified size (can be zero).
void CopyFromMat(const MatrixBase< Real > &M, MatrixTransposeType Trans=kNoTrans)
CopyFromMat copies the lower triangle of M into *this (or the upper triangle, if Trans == kTrans)...
void CopyFromMat(const CuMatrixBase< Real > &M, MatrixTransposeType Trans=kNoTrans)
MatrixIndexT NumRows() const
Dimensions.
const TpMatrix< Real > & Mat() const
void CopyFromPacked(const CuPackedMatrix< Real > &src)