// -------------------- magma_err_t magma_ztrsm( magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_ptr dB, size_t dB_offset, magma_int_t ldb, magma_queue_t queue ) { /* magmaDoubleComplex *hA, *hB; if(side==MagmaRight){ hA = (magmaDoubleComplex*)malloc(lda*n*sizeof(magmaDoubleComplex)); hB = (magmaDoubleComplex*)malloc(ldb*n*sizeof(magmaDoubleComplex)); magma_zgetmatrix(n, n, dA, dA_offset, lda, hA, 0, lda, queue); magma_zgetmatrix(m, n, dB, dB_offset, ldb, hB, 0, ldb, queue); #if defined(PRECISION_z) || defined(PRECISION_c) cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, m, n, &alpha, hA, lda, hB, ldb); #else cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, m, n, alpha, hA, lda, hB, ldb); #endif magma_zsetmatrix(m, n, hB, 0, ldb, dB, dB_offset, ldb, queue); free(hB); free(hA); }else{ hA = (magmaDoubleComplex*)malloc(lda*m*sizeof(magmaDoubleComplex)); hB = (magmaDoubleComplex*)malloc(ldb*n*sizeof(magmaDoubleComplex)); magma_zgetmatrix(m, m, dA, dA_offset, lda, hA, 0, lda, queue); magma_zgetmatrix(m, n, dB, dB_offset, ldb, hB, 0, ldb, queue); #if defined(PRECISION_z) || defined(PRECISION_c) cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, m, n, &alpha, hA, lda, hB, ldb); #else cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, m, n, alpha, hA, lda, hB, ldb); #endif magma_zsetmatrix(m, n, hB, 0, ldb, dB, dB_offset, ldb, queue); free(hB); free(hA); } return CL_SUCCESS; */ cl_int err = clAmdBlasZtrsmEx( clAmdBlasColumnMajor, amdblas_side_const( side ), amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), amdblas_diag_const( diag ), m, n, alpha, dA, dA_offset, lda, dB, dB_offset, ldb, 1, &queue, 0, NULL, NULL ); clFlush(queue); return err; }
//// -------------------- magma_err_t magma_ssyrk( magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, float beta, magmaFloat_ptr dC, size_t dC_offset, magma_int_t ldc, magma_queue_t queue ) { cl_int err = clAmdBlasSsyrkEx( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), n, k, alpha, dA, dA_offset, lda, beta, dC, dC_offset, ldc, 1, &queue, 0, NULL, NULL ); return err; }
// //// -------------------- //magma_err_t //magma_sgemv( // magma_trans_t transA, // magma_int_t m, magma_int_t n, // float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, // magmaFloat_const_ptr dx, size_t dx_offset, magma_int_t incx, // float beta, magmaFloat_ptr dy, size_t dy_offset, magma_int_t incy, // magma_queue_t queue ) //{ // cl_int err = clAmdBlasSgemvEx( // clAmdBlasColumnMajor, // amdblas_trans_const( transA ), // m, n, // alpha, dA, dA_offset, lda, // dx, dx_offset, incx, // beta, dy, dy_offset, incy, // 1, &queue, 0, NULL, NULL ); // return err; //} // //// -------------------- //magma_err_t //magma_ssymm( // magma_side_t side, magma_uplo_t uplo, // magma_int_t m, magma_int_t n, // float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, // magmaFloat_const_ptr dB, size_t dB_offset, magma_int_t ldb, // float beta, magmaFloat_ptr dC, size_t dC_offset, magma_int_t ldc, // magma_queue_t queue ) //{ // cl_int err = clAmdBlasSsymm( // clAmdBlasColumnMajor, // amdblas_side_const( side ), // amdblas_uplo_const( uplo ), // m, n, // alpha, dA, dA_offset, lda, // dB, dB_offset, ldb, // beta, dC, dC_offset, ldc, // 1, &queue, 0, NULL, NULL ); // return err; //} // //// -------------------- magma_err_t magma_ssymv( magma_uplo_t uplo, magma_int_t n, float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaFloat_const_ptr dx, size_t dx_offset, magma_int_t incx, float beta, magmaFloat_ptr dy, size_t dy_offset, magma_int_t incy, magma_queue_t queue ) { cl_int err = clAmdBlasSsymvEx( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), n, alpha, dA, dA_offset, lda, dx, dx_offset, incx, beta, dy, dy_offset, incy, 1, &queue, 0, NULL, NULL ); return err; }
// -------------------- magma_err_t magma_ztrsv( magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_ptr dx, size_t dx_offset, magma_int_t incx, magma_queue_t queue ) { cl_int err = clAmdBlasZtrsv( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), amdblas_diag_const( diag ), n, dA, dA_offset, lda, dx, dx_offset, incx, 1, &queue, 0, NULL, NULL ); return err; }
magma_err_t magma_zherk_trace( magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, double beta, magmaDoubleComplex_ptr dC, size_t dC_offset, magma_int_t ldc, magma_queue_t queue, magma_event_t* event ) { cl_int err = clAmdBlasZherk( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), n, k, alpha, dA, dA_offset, lda, beta, dC, dC_offset, ldc, 1, &queue, 0, NULL, event ); clFlush(queue); return err; }
// -------------------- magma_err_t magma_zhemv( magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_const_ptr dx, size_t dx_offset, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, size_t dy_offset, magma_int_t incy, magma_queue_t queue ) { cl_int err = clAmdBlasZhemv( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), n, alpha, dA, dA_offset, lda, dx, dx_offset, incx, beta, dy, dy_offset, incy, 1, &queue, 0, NULL, NULL ); return err; }
// //// -------------------- //magma_err_t //magma_strsm( // magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, // magma_int_t m, magma_int_t n, // float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, // magmaFloat_ptr dB, size_t dB_offset, magma_int_t ldb, // magma_queue_t queue ) //{ // cl_int err = clAmdBlasStrsmEx( // clAmdBlasColumnMajor, // amdblas_side_const( side ), // amdblas_uplo_const( uplo ), // amdblas_trans_const( trans ), // amdblas_diag_const( diag ), // m, n, // alpha, dA, dA_offset, lda, // dB, dB_offset, ldb, // 1, &queue, 0, NULL, NULL ); // return err; //} // //// -------------------- //magma_err_t //magma_strsv( // magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, // magma_int_t n, // magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, // magmaFloat_ptr dx, size_t dx_offset, magma_int_t incx, // magma_queue_t queue ) //{ // cl_int err = clAmdBlasStrsv( // clAmdBlasColumnMajor, // amdblas_uplo_const( uplo ), // amdblas_trans_const( trans ), // amdblas_diag_const( diag ), // n, // dA, dA_offset, lda, // dx, dx_offset, incx, // 1, &queue, 0, NULL, NULL ); // return err; //} // //// -------------------- magma_err_t magma_strmm( magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaFloat_ptr dB, size_t dB_offset, magma_int_t ldb, magma_queue_t queue ) { cl_int err = clAmdBlasStrmmEx( clAmdBlasColumnMajor, amdblas_side_const( side ), amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), amdblas_diag_const( diag ), m, n, alpha, dA, dA_offset, lda, dB, dB_offset, ldb, 1, &queue, 0, NULL, NULL ); return err; }
// -------------------- magma_err_t magma_zhemm( magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_const_ptr dB, size_t dB_offset, magma_int_t ldb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, size_t dC_offset, magma_int_t ldc, magma_queue_t queue ) { cl_int err = clAmdBlasZhemm( clAmdBlasColumnMajor, amdblas_side_const( side ), amdblas_uplo_const( uplo ), m, n, alpha, dA, dA_offset, lda, dB, dB_offset, ldb, beta, dC, dC_offset, ldc, 1, &queue, 0, NULL, NULL ); return err; }
magma_err_t magma_ztrsm_trace( magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_ptr dB, size_t dB_offset, magma_int_t ldb, magma_queue_t queue, magma_event_t* event ) { cl_int err = clAmdBlasZtrsmEx( clAmdBlasColumnMajor, amdblas_side_const( side ), amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), amdblas_diag_const( diag ), m, n, alpha, dA, dA_offset, lda, dB, dB_offset, ldb, 1, &queue, 0, NULL, event ); clFlush(queue); return err; }
// -------------------- magma_err_t magma_zhemv( magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_const_ptr dx, size_t dx_offset, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, size_t dy_offset, magma_int_t incy, magma_queue_t queue ) { if ( n <= 0 ) return MAGMA_SUCCESS; cl_int err = clAmdBlasZhemvEx( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), n, alpha, dA, dA_offset, lda, dx, dx_offset, incx, beta, dy, dy_offset, incy, 1, &queue, 0, NULL, gevent ); clFlush(queue); return err; }
// -------------------- magma_err_t magma_zher2k( magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda, magmaDoubleComplex_const_ptr dB, size_t dB_offset, magma_int_t ldb, double beta, magmaDoubleComplex_ptr dC, size_t dC_offset, magma_int_t ldc, magma_queue_t queue) { if (n<=0 || k <= 0) return MAGMA_SUCCESS; cl_int err = clAmdBlasZher2kEx( clAmdBlasColumnMajor, amdblas_uplo_const( uplo ), amdblas_trans_const( trans ), n, k, alpha, dA, dA_offset, lda, dB, dB_offset, ldb, beta, dC, dC_offset, ldc, 1, &queue, 0, NULL, gevent ); clFlush(queue); return err; }