# rocm-library-support.yaml
library_groups:
  - group: "ML & Computer Vision"
    tag: "ml-cv"
    libraries:
      - name: "Composable Kernel"
        tag: "composable-kernel"
        doc_link: "composable_kernel:reference/Composable_Kernel_supported_scalar_types"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "float4"
            support: "✅"
          - type: "float6 (E2M3)"
            support: "✅"
          - type: "float6 (E3M2)"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "MIGraphX"
        tag: "migraphx"
        doc_link: "amdmigraphx:reference/cpp"
        data_types:
          - type: "int8"
            support: "⚠️"
          - type: "int16"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "int64"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "MIOpen"
        tag: "miopen"
        doc_link: "miopen:reference/datatypes"
        data_types:
          - type: "int8"
            support: "⚠️"
          - type: "int32"
            support: "⚠️"
          - type: "float8 (E4M3)"
            support: "⚠️"
          - type: "float8 (E5M2)"
            support: "⚠️"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "⚠️"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "⚠️"

  - group: "Communication"
    tag: "communication"
    libraries:
      - name: "RCCL"
        tag: "rccl"
        doc_link: "rccl:api-reference/library-specification"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "int64"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

  - group: "Math Libraries"
    tag: "math-libs"
    libraries:
      - name: "hipBLAS"
        tag: "hipblas"
        doc_link: "hipblas:reference/data-type-support"
        data_types:
          - type: "float16"
            support: "⚠️"
          - type: "bfloat16"
            support: "⚠️"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "hipBLASLt"
        tag: "hipblaslt"
        doc_link: "hipblaslt:reference/data-type-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "float4"
            support: "✅"
          - type: "float6 (E2M3)"
            support: "✅"
          - type: "float6 (E3M2)"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"

      - name: "hipFFT"
        tag: "hipfft"
        doc_link: "hipfft:reference/fft-api-usage"
        data_types:
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "hipRAND"
        tag: "hiprand"
        doc_link: "hiprand:api-reference/data-type-support"
        data_types:
          - type: "int8"
            support: "Output only"
          - type: "int16"
            support: "Output only"
          - type: "int32"
            support: "Output only"
          - type: "int64"
            support: "Output only"
          - type: "float16"
            support: "Output only"
          - type: "float32"
            support: "Output only"
          - type: "float64"
            support: "Output only"

      - name: "hipSOLVER"
        tag: "hipsolver"
        doc_link: "hipsolver:reference/precision"
        data_types:
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "hipSPARSE"
        tag: "hipsparse"
        doc_link: "hipsparse:reference/precision"
        data_types:
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "hipSPARSELt"
        tag: "hipsparselt"
        doc_link: "hipsparselt:reference/data-type-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"

      - name: "rocBLAS"
        tag: "rocblas"
        doc_link: "rocblas:reference/data-type-support"
        data_types:
          - type: "float16"
            support: "⚠️"
          - type: "bfloat16"
            support: "⚠️"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocFFT"
        tag: "rocfft"
        doc_link: "rocfft:reference/api"
        data_types:
          - type: "float16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocRAND"
        tag: "rocrand"
        doc_link: "rocrand:api-reference/data-type-support"
        data_types:
          - type: "int8"
            support: "Output only"
          - type: "int16"
            support: "Output only"
          - type: "int32"
            support: "Output only"
          - type: "int64"
            support: "Output only"
          - type: "float16"
            support: "Output only"
          - type: "float32"
            support: "Output only"
          - type: "float64"
            support: "Output only"

      - name: "rocSOLVER"
        tag: "rocsolver"
        doc_link: "rocsolver:reference/precision"
        data_types:
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocSPARSE"
        tag: "rocsparse"
        doc_link: "rocsparse:reference/precision"
        data_types:
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocWMMA"
        tag: "rocwmma"
        doc_link: "rocwmma:api-reference/api-reference-guide"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int32"
            support: "Output only"
          - type: "float8 (E4M3)"
            support: "Input only"
          - type: "float8 (E5M2)"
            support: "Input only"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "tensorfloat32"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "Tensile"
        tag: "tensile"
        doc_link: "tensile:reference/precision-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "float8 (E4M3)"
            support: "✅"
          - type: "float8 (E5M2)"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "tensorfloat32"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

  - group: "Primitives"
    tag: "primitives"
    libraries:
      - name: "hipCUB"
        tag: "hipcub"
        doc_link: "hipcub:api-reference/data-type-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int16"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "int64"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "hipTensor"
        tag: "hiptensor"
        doc_link: "hiptensor:api-reference/api-reference"
        data_types:
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocPRIM"
        tag: "rocprim"
        doc_link: "rocprim:reference/data-type-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int16"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "int64"
            support: "✅"
          - type: "float16"
            support: "✅"
          - type: "bfloat16"
            support: "✅"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"

      - name: "rocThrust"
        tag: "rocthrust"
        doc_link: "rocthrust:data-type-support"
        data_types:
          - type: "int8"
            support: "✅"
          - type: "int16"
            support: "✅"
          - type: "int32"
            support: "✅"
          - type: "int64"
            support: "✅"
          - type: "float16"
            support: "⚠️"
          - type: "bfloat16"
            support: "⚠️"
          - type: "float32"
            support: "✅"
          - type: "float64"
            support: "✅"
