rocBLAS deprecations by version#

Announced in rocBLAS 2.45#

Replace is_complex by rocblas_is_complex#

From rocBLAS 3.0 the trait is_complex for rocblas complex types has been removed. Replace with rocblas_is_complex

Replace truncate with rocblas_truncate#

From rocBLAS 3.0 enum truncate_t and the value truncate has been removed and replaced by rocblas_truncate_t and rocblas_truncate, respectively.

Announced in rocBLAS 2.46#

Remove ability for hipBLAS to set rocblas_int8_type_for_hipblas#

From rocBLAS 3.0 remove enum rocblas_int8_type_for_hipblas and the functions rocblas_get_int8_type_for_hipblas and rocblas_set_int8_type_for_hipblas. These are used by hipBLAS to select either int8_t or packed_int8x4 datatype. In hipBLAS the option to use packed_int8x4 will be removed, only int8_t will be available.

Announced in rocBLAS 3.0#

Replace Legacy BLAS in-place trmm functions with trmm functions that support both in-place and out-of-place functionality#

Use of the deprecated Legacy BLAS in-place trmm functions will give deprecation warnings telling you to compile with -DROCBLAS_V3 and use the new in-place and out-of-place trmm functions.

Note that there are no deprecation warnings for the rocBLAS Fortran API.

The Legacy BLAS in-place trmm calculates B <- alpha * op(A) * B. Matrix B is replaced in-place by triangular matrix A multiplied by matrix B. The prototype in the include file rocblas-functions.h is:

rocblas_status rocblas_strmm(rocblas_handle    handle,
                             rocblas_side      side,
                             rocblas_fill      uplo,
                             rocblas_operation transA,
                             rocblas_diagonal  diag,
                             rocblas_int       m,
                             rocblas_int       n,
                             const float*      alpha,
                             const float*      A,
                             rocblas_int       lda,
                             float*            B,
                             rocblas_int       ldb);

rocBLAS 3.0 deprecates the legacy BLAS trmm functionality and replaces it with C <- alpha * op(A) * B. The prototype is:

rocblas_status rocblas_strmm(rocblas_handle    handle,
                             rocblas_side      side,
                             rocblas_fill      uplo,
                             rocblas_operation transA,
                             rocblas_diagonal  diag,
                             rocblas_int       m,
                             rocblas_int       n,
                             const float*      alpha,
                             const float*      A,
                             rocblas_int       lda,
                             const float*      B,
                             rocblas_int       ldb,
                             float*            C,
                             rocblas_int       ldc);

The new API provides the legacy BLAS in-place functionality if you set pointer C equal to pointer B and ldc equal to ldb.

There are similar deprecations for the _batched and _strided_batched versions of trmm.

Remove rocblas_gemm_ext2#

rocblas_gemm_ext2 is deprecated and it will be removed in the next major release of rocBLAS.

Removal of rocblas_query_int8_layout_flag#

rocblas_query_int8_layout_flag will be removed and support will end for the rocblas_gemm_flags_pack_int8x4 enum in rocblas_gemm_flags in a future release. rocblas_int8_type_for_hipblas will remain until rocblas_query_int8_layout_flag is removed.

Remove user_managed mode from rocblas_handle#

From rocBLAS 4.0, the schemes for allocating temporary device memory would be reduced to two from four.

Existing four schemes are:

  • rocblas_managed

  • user_managed, preallocate

  • user_managed, manual

  • user_owned

From rocBLAS 4.0, the two schemes would be rocblas_managed and user_owned. The functionality of user_managed ( both preallocate and manual) would be combined into rocblas_managed scheme.

Due to this the following APIs would be affected:

  • rocblas_is_user_managing_device_memory() will be removed.

  • rocblas_set_device_memory_size() will be replaced by a future function rocblas_increase_device_memory_size(), this new API would allow users to increase the device memory pool size at runtime.

Announced in rocBLAS 3.1#

Removal of __STDC_WANT_IEC_60559_TYPES_EXT__ define#

Prior to rocBLAS 4.0, __STDC_WANT_IEC_60559_TYPES_EXT__ was defined in rocblas.h, or more specifically rocblas-types.h, before including float.h. From rocBLAS 4.0, this define will be removed. Users who want ISO/IEC TS 18661-3:2015 functionality must define __STDC_WANT_IEC_60559_TYPES_EXT__ before including float.h and rocblas.h.

Announced in rocBLAS 4.0#

Atomic operations will be disabled by default#

The default rocblas_atomics_mode in rocblas_handle will change in the future to rocblas_atomics_not_allowed from the current rocblas_atomics_allowed. Thus the default will allow for improved determinism over performance. Users can add explicit control and not be affected by this change by calling the function rocblas_set_atomics_mode().

Removed in rocBLAS 4.0#

rocblas_gemm_ext2 removed#

rocblas_gemm_ext2 API function was removed in 4.0.

rocblas_gemm_flags_pack_int8x4 gemm support removed#

Packed int8x4 support was removed as support for arbitrary dimensioned int8_t data is a superset of this functionality:

  • rocblas_gemm_flags_pack_int8x4 enum value in rocblas_gemm_flags was removed

  • struct rocblas_int8x4 was removed

  • function rocblas_query_int8_layout_flag was removed

  • enum rocblas_int8_type_for_hipblas type was removed

Legacy BLAS in-place trmm API removed#

The Legacy BLAS in-place trmm API is removed. It is replaced by an API that supports both in-place and out-of-place trmm. The Legacy BLAS in-place trmm calculated

B <- alpha * op(A) * B

The in-place and out-of-place trmm API calculates

C <- alpha * op(A) * B

The in-place functionality is available by setting C the same as B and ldb = ldc. For out-of-place functionality C and B are different.

Removal of __STDC_WANT_IEC_60559_TYPES_EXT__ define#

The #define __STDC_WANT_IEC_60559_TYPES_EXT__ has been removed from rocblas-types.h. Users who want ISO/IEC TS 18661-3:2015 functionality must define __STDC_WANT_IEC_60559_TYPES_EXT__ before including float.h, math.h, and rocblas.h.