diff --git a/compute/zgesvd.c b/compute/zgesvd.c index bdc66a5c2b9c7efc6dee0560991273fcd03c6ae3..945783ccb79308d7b53b209644d91fc61dfc5e93 100644 --- a/compute/zgesvd.c +++ b/compute/zgesvd.c @@ -489,11 +489,10 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, /* On exit, U and VT are updated with bidiagonal matrix singular vectors */ #if !defined(CHAMELEON_SIMULATION) { - int nru, ncvt; + cham_uplo_t uplo; + int info, nru, ncvt; + switch ( jobu ) { - case ChamNoVec : - nru = 0; - break; case ChamOVec : case ChamAllVec : nru = M; @@ -501,13 +500,11 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, case ChamSVec : nru = MINMN; break; + case ChamNoVec : default: - ; + nru = 0; } switch ( jobvt ) { - case ChamNoVec : - ncvt = 0; - break; case ChamOVec : case ChamAllVec : ncvt = N; @@ -515,12 +512,13 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt, case ChamSVec : ncvt = MINMN; break; + case ChamNoVec : default: - ; + ncvt = 0; } - cham_uplo_t uplo = M >= N ? ChamUpper : ChamLower; - int info = LAPACKE_zbdsqr( LAPACK_COL_MAJOR, chameleon_lapack_const(uplo), MINMN, - ncvt, nru, 0, S, E, VT, LDVT, U, LDU, NULL, 1 ); + uplo = M >= N ? ChamUpper : ChamLower; + info = LAPACKE_zbdsqr( LAPACK_COL_MAJOR, chameleon_lapack_const(uplo), MINMN, + ncvt, nru, 0, S, E, VT, LDVT, U, LDU, NULL, 1 ); if ( info != 0 ) { fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zbdsqr = %d\n", info ); } diff --git a/cudablas/compute/cuda_zlarfb.c b/cudablas/compute/cuda_zlarfb.c index 6f460d3517cc7bdda161757cc5904cd1e9153e8e..5039d0265ca88a197568f7aa597384f44b212f08 100644 --- a/cudablas/compute/cuda_zlarfb.c +++ b/cudablas/compute/cuda_zlarfb.c @@ -157,5 +157,6 @@ CUDA_zlarfb( cham_side_t side, cham_trans_t trans, CUBLAS_SADDR(zone), C, LDC ); assert( rc == CUBLAS_STATUS_SUCCESS ); } - return CHAMELEON_SUCCESS; + + return (rc == CUBLAS_STATUS_SUCCESS) ? CHAMELEON_SUCCESS : CHAMELEON_ERR_UNEXPECTED; } diff --git a/cudablas/compute/cuda_zparfb.c b/cudablas/compute/cuda_zparfb.c index ee2329d398bd03f7cda98be9451347409ef3356a..39aaa7586df4ec0ca904997dd7e9fca7e28c3106 100644 --- a/cudablas/compute/cuda_zparfb.c +++ b/cudablas/compute/cuda_zparfb.c @@ -525,5 +525,5 @@ CUDA_zparfb( cham_side_t side, cham_trans_t trans, return CHAMELEON_ERR_NOT_SUPPORTED; } - return CHAMELEON_SUCCESS; + return (rc == CUBLAS_STATUS_SUCCESS) ? CHAMELEON_SUCCESS : CHAMELEON_ERR_UNEXPECTED; } diff --git a/runtime/starpu/codelets/codelet_zgersum.c b/runtime/starpu/codelets/codelet_zgersum.c index 079302b05812e371092cca7ceedbfe21526a3ea8..5a53839a635243b0fb8904cd7768d852a984b70a 100644 --- a/runtime/starpu/codelets/codelet_zgersum.c +++ b/runtime/starpu/codelets/codelet_zgersum.c @@ -45,10 +45,14 @@ cl_zgersum_redux_cpu_func( void *descr[], void *cl_arg ) static void cl_zgersum_redux_cuda_func( void *descr[], void *cl_arg ) { - cublasHandle_t handle = starpu_cublas_get_local_handle(); - CHAMELEON_Complex64_t zone = 1.; - CHAM_tile_t *tileA; - CHAM_tile_t *tileB; +#if defined(PRECISION_z) || defined(PRECISION_c) + cuDoubleComplex zone = make_cuDoubleComplex(1.0, 0.0); +#else + double zone = 1.0; +#endif /* defined(PRECISION_z) || defined(PRECISION_c) */ + cublasHandle_t handle = starpu_cublas_get_local_handle(); + CHAM_tile_t *tileA; + CHAM_tile_t *tileB; tileA = cti_interface_get(descr[0]); tileB = cti_interface_get(descr[1]); @@ -99,6 +103,7 @@ cl_zgersum_init_cuda_func( void *descr[], void *cl_arg ) assert( rc == CUBLAS_STATUS_SUCCESS ); (void)cl_arg; + (void)rc; } #endif /* defined(CHAMELEON_USE_CUDA) */ #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/interface/cham_tile_interface.c b/runtime/starpu/interface/cham_tile_interface.c index f74623e63dc725cb69d3d123b66fe623e98e5235..51e6a4b041fb50ff2f98f52f5830799875bc7af4 100644 --- a/runtime/starpu/interface/cham_tile_interface.c +++ b/runtime/starpu/interface/cham_tile_interface.c @@ -115,7 +115,7 @@ cti_init( void *data_interface ) static void cti_register_data_handle( starpu_data_handle_t handle, - int home_node, + unsigned int home_node, void *data_interface ) { starpu_cham_tile_interface_t *cham_tile_interface = (starpu_cham_tile_interface_t *) data_interface; diff --git a/testing/testing_zcheck_svd.c b/testing/testing_zcheck_svd.c index b09602679be7250da1444db10ce588b02481357c..f6d9c9046e406f50097fb243565e0fe1f0b8ffd6 100644 --- a/testing/testing_zcheck_svd.c +++ b/testing/testing_zcheck_svd.c @@ -229,7 +229,8 @@ int check_zgesvd( run_arg_list_t *args, cham_job_t jobu, cham_job_t jobvt, CHAM_ { int info_solution; int rank = CHAMELEON_Comm_rank(); - CHAMELEON_Complex64_t *Ainit, *A; + CHAMELEON_Complex64_t *Ainit = NULL; + CHAMELEON_Complex64_t *A = NULL; int M = descA->m; int N = descA->n; int LDA = descA->lm;