mirror of
https://github.com/ROCm/ROCm.git
synced 2026-01-13 08:38:04 -05:00
Compare commits
7 Commits
aqlprofile
...
precision_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eee2e0d4fb | ||
|
|
b2012cb0b9 | ||
|
|
45cf2b9a80 | ||
|
|
bee363995b | ||
|
|
3a031fad3a | ||
|
|
46f6c4ff9a | ||
|
|
f632f2879f |
@@ -1,10 +1,29 @@
|
||||
parameters:
|
||||
- name: componentName
|
||||
type: string
|
||||
default: AMDMIGraphX
|
||||
- name: checkoutRepo
|
||||
type: string
|
||||
default: 'self'
|
||||
- name: checkoutRef
|
||||
type: string
|
||||
default: ''
|
||||
# monorepo related parameters
|
||||
# - name: sparseCheckoutDir
|
||||
# type: string
|
||||
# default: ''
|
||||
- name: triggerDownstreamJobs
|
||||
type: boolean
|
||||
default: false
|
||||
- name: downstreamAggregateNames
|
||||
type: string
|
||||
default: ''
|
||||
- name: buildDependsOn
|
||||
type: object
|
||||
default: null
|
||||
- name: unifiedBuild
|
||||
type: boolean
|
||||
default: false
|
||||
# set to true if doing full build of ROCm stack
|
||||
# and dependencies are pulled from same pipeline
|
||||
- name: aggregatePipeline
|
||||
@@ -93,7 +112,11 @@ parameters:
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
- job: AMDMIGraphX_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
${{ if parameters.buildDependsOn }}:
|
||||
dependsOn:
|
||||
- ${{ each build in parameters.buildDependsOn }}:
|
||||
- ${{ build }}_ubuntu2204_${{ job.target }}
|
||||
variables:
|
||||
- group: common
|
||||
- template: /.azuredevops/variables-global.yml
|
||||
@@ -121,6 +144,8 @@ jobs:
|
||||
dependencyList: ${{ parameters.rocmDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
aggregatePipeline: ${{ parameters.aggregatePipeline }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
|
||||
parameters:
|
||||
extraBuildFlags: >-
|
||||
@@ -146,12 +171,12 @@ jobs:
|
||||
gpuTarget: ${{ job.target }}
|
||||
|
||||
- ${{ each job in parameters.jobMatrix.testJobs }}:
|
||||
- job: AMDMIGraphX_test_${{ job.target }}
|
||||
dependsOn: AMDMIGraphX_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }}
|
||||
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
condition:
|
||||
and(succeeded(),
|
||||
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
|
||||
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
|
||||
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')),
|
||||
eq(${{ parameters.aggregatePipeline }}, False)
|
||||
)
|
||||
variables:
|
||||
@@ -183,6 +208,8 @@ jobs:
|
||||
checkoutRef: ${{ parameters.checkoutRef }}
|
||||
dependencyList: ${{ parameters.rocmTestDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- task: CMake@1
|
||||
displayName: MIGraphXTest CMake Flags
|
||||
inputs:
|
||||
@@ -199,7 +226,7 @@ jobs:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
|
||||
parameters:
|
||||
componentName: AMDMIGraphX
|
||||
componentName: ${{ parameters.componentName }}
|
||||
testExecutable: make
|
||||
testParameters: -j$(nproc) check
|
||||
testPublishResults: false
|
||||
|
||||
@@ -1,10 +1,29 @@
|
||||
parameters:
|
||||
- name: componentName
|
||||
type: string
|
||||
default: MIOpen
|
||||
- name: checkoutRepo
|
||||
type: string
|
||||
default: 'self'
|
||||
- name: checkoutRef
|
||||
type: string
|
||||
default: ''
|
||||
# monorepo related parameters
|
||||
- name: sparseCheckoutDir
|
||||
type: string
|
||||
default: ''
|
||||
- name: triggerDownstreamJobs
|
||||
type: boolean
|
||||
default: false
|
||||
- name: downstreamAggregateNames
|
||||
type: string
|
||||
default: ''
|
||||
- name: buildDependsOn
|
||||
type: object
|
||||
default: null
|
||||
- name: unifiedBuild
|
||||
type: boolean
|
||||
default: false
|
||||
# set to true if doing full build of ROCm stack
|
||||
# and dependencies are pulled from same pipeline
|
||||
- name: aggregatePipeline
|
||||
@@ -74,10 +93,31 @@ parameters:
|
||||
target: gfx942
|
||||
- gfx90a:
|
||||
target: gfx90a
|
||||
- name: downstreamComponentMatrix
|
||||
type: object
|
||||
default:
|
||||
- MIVisionX:
|
||||
name: MIVisionX
|
||||
checkoutRepo: mivisionx_repo
|
||||
sparseCheckoutDir: ''
|
||||
skipUnifiedBuild: 'false'
|
||||
buildDependsOn:
|
||||
- MIOpen_build
|
||||
- AMDMIGraphX:
|
||||
name: AMDMIGraphX
|
||||
checkoutRepo: amdmigraphx_repo
|
||||
sparseCheckoutDir: ''
|
||||
skipUnifiedBuild: 'false'
|
||||
buildDependsOn:
|
||||
- MIOpen_build
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
- job: MIOpen_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
${{ if parameters.buildDependsOn }}:
|
||||
dependsOn:
|
||||
- ${{ each build in parameters.buildDependsOn }}:
|
||||
- ${{ build }}_ubuntu2204_${{ job.target }}
|
||||
variables:
|
||||
- group: common
|
||||
- template: /.azuredevops/variables-global.yml
|
||||
@@ -95,6 +135,7 @@ jobs:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
|
||||
parameters:
|
||||
checkoutRepo: ${{ parameters.checkoutRepo }}
|
||||
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml
|
||||
parameters:
|
||||
gpuTarget: ${{ job.target }}
|
||||
@@ -104,11 +145,13 @@ jobs:
|
||||
dependencyList: ${{ parameters.rocmDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
aggregatePipeline: ${{ parameters.aggregatePipeline }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- task: Bash@3
|
||||
displayName: Build and install other dependencies
|
||||
inputs:
|
||||
targetType: inline
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
workingDirectory: $(Agent.BuildDirectory)/s
|
||||
script: |
|
||||
sed -i '/composable_kernel/d' requirements.txt
|
||||
mkdir -p $(Agent.BuildDirectory)/miopen-deps
|
||||
@@ -130,8 +173,10 @@ jobs:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
|
||||
parameters:
|
||||
gpuTarget: ${{ job.target }}
|
||||
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
|
||||
parameters:
|
||||
componentName: ${{ parameters.componentName }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
|
||||
@@ -143,9 +188,9 @@ jobs:
|
||||
- miopen-deps
|
||||
|
||||
- ${{ each job in parameters.jobMatrix.testJobs }}:
|
||||
- job: MIOpen_test_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }}
|
||||
timeoutInMinutes: 180
|
||||
dependsOn: MIOpen_build_${{ job.target }}
|
||||
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
condition:
|
||||
and(succeeded(),
|
||||
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
|
||||
@@ -169,6 +214,7 @@ jobs:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
|
||||
parameters:
|
||||
checkoutRepo: ${{ parameters.checkoutRepo }}
|
||||
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml
|
||||
parameters:
|
||||
@@ -178,11 +224,13 @@ jobs:
|
||||
checkoutRef: ${{ parameters.checkoutRef }}
|
||||
dependencyList: ${{ parameters.rocmTestDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- task: Bash@3
|
||||
displayName: Build and install other dependencies
|
||||
inputs:
|
||||
targetType: inline
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
workingDirectory: $(Agent.BuildDirectory)/s
|
||||
script: |
|
||||
sed -i '/composable_kernel/d' requirements.txt
|
||||
mkdir -p $(Agent.BuildDirectory)/miopen-deps
|
||||
@@ -193,7 +241,7 @@ jobs:
|
||||
displayName: 'MIOpen Test CMake Flags'
|
||||
inputs:
|
||||
cmakeArgs: >-
|
||||
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Agent.BuildDirectory)/miopen-deps
|
||||
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/s/bin;$(Agent.BuildDirectory)/miopen-deps
|
||||
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm
|
||||
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
|
||||
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
|
||||
@@ -203,19 +251,19 @@ jobs:
|
||||
-DBUILD_DEV=OFF
|
||||
-DMIOPEN_USE_MLIR=ON
|
||||
-DMIOPEN_GPU_SYNC=OFF
|
||||
..
|
||||
$(Agent.BuildDirectory)/s
|
||||
- task: Bash@3
|
||||
displayName: 'MIOpen Test Build'
|
||||
inputs:
|
||||
targetType: inline
|
||||
workingDirectory: build
|
||||
script: |
|
||||
cmake --build . --target tests -- -j$(nproc)
|
||||
workingDirectory: $(Build.SourcesDirectory)/build
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
|
||||
parameters:
|
||||
componentName: MIOpen
|
||||
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "test_rnn_seq_api|GPU_Conv2dTuningAsm_FP32"'
|
||||
componentName: ${{ parameters.componentName }}
|
||||
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "test_rnn_seq_api|GPU_Conv2dTuningAsm_FP32|GPU_Conv2dTuningAsmBwdWrw_FP32"'
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
|
||||
parameters:
|
||||
aptPackages: ${{ parameters.aptPackages }}
|
||||
@@ -224,3 +272,15 @@ jobs:
|
||||
gpuTarget: ${{ job.target }}
|
||||
extraCopyDirectories:
|
||||
- miopen-deps
|
||||
|
||||
# - ${{ if parameters.triggerDownstreamJobs }}:
|
||||
# - ${{ each component in parameters.downstreamComponentMatrix }}:
|
||||
# - ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
|
||||
# - template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
|
||||
# parameters:
|
||||
# checkoutRepo: ${{ component.checkoutRepo }}
|
||||
# # sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
|
||||
# buildDependsOn: ${{ component.buildDependsOn }}
|
||||
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
|
||||
# triggerDownstreamJobs: true
|
||||
# unifiedBuild: ${{ parameters.unifiedBuild }}
|
||||
|
||||
@@ -1,10 +1,29 @@
|
||||
parameters:
|
||||
- name: componentName
|
||||
type: string
|
||||
default: MIVisionX
|
||||
- name: checkoutRepo
|
||||
type: string
|
||||
default: 'self'
|
||||
- name: checkoutRef
|
||||
type: string
|
||||
default: ''
|
||||
# monorepo related parameters
|
||||
# - name: sparseCheckoutDir
|
||||
# type: string
|
||||
# default: ''
|
||||
- name: triggerDownstreamJobs
|
||||
type: boolean
|
||||
default: false
|
||||
- name: downstreamAggregateNames
|
||||
type: string
|
||||
default: ''
|
||||
- name: buildDependsOn
|
||||
type: object
|
||||
default: null
|
||||
- name: unifiedBuild
|
||||
type: boolean
|
||||
default: false
|
||||
# set to true if doing full build of ROCm stack
|
||||
# and dependencies are pulled from same pipeline
|
||||
- name: aggregatePipeline
|
||||
@@ -60,6 +79,7 @@ parameters:
|
||||
- name: rocmTestDependencies
|
||||
type: object
|
||||
default:
|
||||
- aomp
|
||||
- clr
|
||||
- half
|
||||
- hipBLAS-common
|
||||
@@ -88,7 +108,11 @@ parameters:
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
- job: MIVisionX_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
${{ if parameters.buildDependsOn }}:
|
||||
dependsOn:
|
||||
- ${{ each build in parameters.buildDependsOn }}:
|
||||
- ${{ build }}_ubuntu2204_${{ job.target }}
|
||||
variables:
|
||||
- group: common
|
||||
- template: /.azuredevops/variables-global.yml
|
||||
@@ -110,6 +134,8 @@ jobs:
|
||||
dependencyList: ${{ parameters.rocmDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
aggregatePipeline: ${{ parameters.aggregatePipeline }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
|
||||
parameters:
|
||||
extraBuildFlags: >-
|
||||
@@ -131,12 +157,12 @@ jobs:
|
||||
# gpuTarget: ${{ job.target }}
|
||||
|
||||
- ${{ each job in parameters.jobMatrix.testJobs }}:
|
||||
- job: MIVisionX_test_${{ job.target }}
|
||||
dependsOn: MIVisionX_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }}
|
||||
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
condition:
|
||||
and(succeeded(),
|
||||
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
|
||||
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
|
||||
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')),
|
||||
eq(${{ parameters.aggregatePipeline }}, False)
|
||||
)
|
||||
variables:
|
||||
@@ -161,6 +187,8 @@ jobs:
|
||||
checkoutRef: ${{ parameters.checkoutRef }}
|
||||
dependencyList: ${{ parameters.rocmTestDependencies }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- task: Bash@3
|
||||
displayName: Build MIVisionX tests
|
||||
inputs:
|
||||
@@ -174,7 +202,7 @@ jobs:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
|
||||
parameters:
|
||||
componentName: MIVisionX
|
||||
componentName: ${{ parameters.componentName }}
|
||||
testDir: 'mivisionx-tests'
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
|
||||
parameters:
|
||||
|
||||
@@ -90,24 +90,24 @@ parameters:
|
||||
target: gfx90a
|
||||
# MIOpen depends on both rocRAND and hipBLAS
|
||||
# for a unified build, hipBLAS will be the one to call MIOpen
|
||||
# - name: downstreamComponentMatrix
|
||||
# type: object
|
||||
# default:
|
||||
# - MIOpen:
|
||||
# name: MIOpen
|
||||
# sparseCheckoutDir: projects/miopen
|
||||
# skipUnifiedBuild: 'false'
|
||||
# buildDependsOn:
|
||||
# - hipBLAS_build
|
||||
# unifiedBuild:
|
||||
# downstreamAggregateNames: hipBLAS+rocRAND
|
||||
# buildDependsOn:
|
||||
# - hipBLAS_build
|
||||
# - rocRAND_build
|
||||
- name: downstreamComponentMatrix
|
||||
type: object
|
||||
default:
|
||||
- MIOpen:
|
||||
name: MIOpen
|
||||
sparseCheckoutDir: projects/miopen
|
||||
skipUnifiedBuild: 'false'
|
||||
buildDependsOn:
|
||||
- hipBLAS_build
|
||||
unifiedBuild:
|
||||
downstreamAggregateNames: hipBLAS+rocRAND
|
||||
buildDependsOn:
|
||||
- hipBLAS_build
|
||||
- rocRAND_build
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
- job: ${{ parameters.componentName }}_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
${{ if parameters.buildDependsOn }}:
|
||||
dependsOn:
|
||||
- ${{ each build in parameters.buildDependsOn }}:
|
||||
@@ -168,8 +168,8 @@ jobs:
|
||||
|
||||
- ${{ if eq(parameters.unifiedBuild, False) }}:
|
||||
- ${{ each job in parameters.jobMatrix.testJobs }}:
|
||||
- job: ${{ parameters.componentName }}_test_${{ job.target }}
|
||||
dependsOn: ${{ parameters.componentName }}_build_${{ job.target }}
|
||||
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }}
|
||||
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }}
|
||||
condition:
|
||||
and(succeeded(),
|
||||
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
|
||||
@@ -215,18 +215,18 @@ jobs:
|
||||
environment: test
|
||||
gpuTarget: ${{ job.target }}
|
||||
|
||||
# - ${{ if parameters.triggerDownstreamJobs }}:
|
||||
# - ${{ each component in parameters.downstreamComponentMatrix }}:
|
||||
# - ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
|
||||
# - template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
|
||||
# parameters:
|
||||
# checkoutRepo: ${{ parameters.checkoutRepo }}
|
||||
# sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
|
||||
# triggerDownstreamJobs: true
|
||||
# unifiedBuild: ${{ parameters.unifiedBuild }}
|
||||
# ${{ if parameters.unifiedBuild }}:
|
||||
# buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
|
||||
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
|
||||
# ${{ else }}:
|
||||
# buildDependsOn: ${{ component.buildDependsOn }}
|
||||
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
|
||||
- ${{ if parameters.triggerDownstreamJobs }}:
|
||||
- ${{ each component in parameters.downstreamComponentMatrix }}:
|
||||
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
|
||||
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
|
||||
parameters:
|
||||
checkoutRepo: ${{ parameters.checkoutRepo }}
|
||||
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
|
||||
triggerDownstreamJobs: true
|
||||
unifiedBuild: ${{ parameters.unifiedBuild }}
|
||||
${{ if parameters.unifiedBuild }}:
|
||||
buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
|
||||
${{ else }}:
|
||||
buildDependsOn: ${{ component.buildDependsOn }}
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
|
||||
|
||||
@@ -79,6 +79,12 @@ parameters:
|
||||
skipUnifiedBuild: 'false'
|
||||
buildDependsOn:
|
||||
- rocRAND_build
|
||||
- MIOpen:
|
||||
name: MIOpen
|
||||
sparseCheckoutDir: projects/miopen
|
||||
skipUnifiedBuild: 'true'
|
||||
buildDependsOn:
|
||||
- rocRAND_build
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
|
||||
163
.azuredevops/components/rocm-libraries.yml
Normal file
163
.azuredevops/components/rocm-libraries.yml
Normal file
@@ -0,0 +1,163 @@
|
||||
parameters:
|
||||
- name: componentName
|
||||
type: string
|
||||
default: rocm_libraries
|
||||
- name: checkoutRepo
|
||||
type: string
|
||||
default: 'self'
|
||||
- name: checkoutRef
|
||||
type: string
|
||||
default: ''
|
||||
# monorepo related parameters
|
||||
- name: sparseCheckoutDir
|
||||
type: string
|
||||
default: ''
|
||||
- name: triggerDownstreamJobs
|
||||
type: boolean
|
||||
default: false
|
||||
- name: downstreamAggregateNames
|
||||
type: string
|
||||
default: ''
|
||||
- name: buildDependsOn
|
||||
type: object
|
||||
default: null
|
||||
- name: unifiedBuild
|
||||
type: boolean
|
||||
default: false
|
||||
# set to true if doing full build of ROCm stack
|
||||
# and dependencies are pulled from same pipeline
|
||||
- name: aggregatePipeline
|
||||
type: boolean
|
||||
default: false
|
||||
- name: aptPackages
|
||||
type: object
|
||||
default:
|
||||
- ccache
|
||||
- gfortran
|
||||
- git
|
||||
- libdrm-dev
|
||||
- libmsgpack-dev
|
||||
- libnuma-dev
|
||||
- ninja-build
|
||||
- python3-pip
|
||||
- python3-venv
|
||||
- name: pipModules
|
||||
type: object
|
||||
default:
|
||||
- joblib
|
||||
- "packaging>=22.0"
|
||||
- --upgrade
|
||||
- name: rocmDependencies
|
||||
type: object
|
||||
default:
|
||||
- aomp
|
||||
- clr
|
||||
- llvm-project
|
||||
- rocminfo
|
||||
- rocm-cmake
|
||||
- rocm_smi_lib
|
||||
- rocprofiler-register
|
||||
- ROCR-Runtime
|
||||
- roctracer
|
||||
- name: rocmTestDependencies
|
||||
type: object
|
||||
default:
|
||||
- aomp
|
||||
- clr
|
||||
- llvm-project
|
||||
- rocminfo
|
||||
- rocm_smi_lib
|
||||
- rocprofiler-register
|
||||
- ROCR-Runtime
|
||||
- roctracer
|
||||
|
||||
- name: jobMatrix
|
||||
type: object
|
||||
default:
|
||||
buildJobs:
|
||||
- { pool: rocm-ci_ultra_build_pool, os: ubuntu2204, packageManager: apt, target: gfx942 }
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobMatrix.buildJobs }}:
|
||||
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }}
|
||||
timeoutInMinutes: 300
|
||||
${{ if parameters.buildDependsOn }}:
|
||||
dependsOn:
|
||||
- ${{ each build in parameters.buildDependsOn }}:
|
||||
- ${{ build }}_${{ job.os }}
|
||||
variables:
|
||||
- group: common
|
||||
- template: /.azuredevops/variables-global.yml
|
||||
- name: DAY_STRING
|
||||
value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
|
||||
pool: ${{ job.pool }}
|
||||
${{ if eq(job.os, 'almalinux8') }}:
|
||||
container:
|
||||
image: rocmexternalcicd.azurecr.io/manylinux228:latest
|
||||
endpoint: ContainerService3
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
|
||||
parameters:
|
||||
aptPackages: ${{ parameters.aptPackages }}
|
||||
pipModules: ${{ parameters.pipModules }}
|
||||
packageManager: ${{ job.packageManager }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
|
||||
parameters:
|
||||
checkoutRepo: ${{ parameters.checkoutRepo }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
|
||||
parameters:
|
||||
dependencyList:
|
||||
- gtest
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
|
||||
parameters:
|
||||
checkoutRef: ${{ parameters.checkoutRef }}
|
||||
dependencyList: ${{ parameters.rocmDependencies }}
|
||||
os: ${{ job.os }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
aggregatePipeline: ${{ parameters.aggregatePipeline }}
|
||||
${{ if parameters.triggerDownstreamJobs }}:
|
||||
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
|
||||
- script: |
|
||||
mkdir -p $(CCACHE_DIR)
|
||||
echo "##vso[task.prependpath]/usr/lib/ccache"
|
||||
displayName: Update path for ccache
|
||||
- task: Cache@2
|
||||
displayName: Ccache caching
|
||||
inputs:
|
||||
key: rocm-libraries | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
|
||||
path: $(CCACHE_DIR)
|
||||
restoreKeys: |
|
||||
rocm-libraries | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING)
|
||||
rocm-libraries | ${{ job.os }} | ${{ job.target }}
|
||||
rocm-libraries | ${{ job.os }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
|
||||
parameters:
|
||||
os: ${{ job.os }}
|
||||
extraBuildFlags: >-
|
||||
-DROCM_LIBRARIES_SUPERBUILD=ON
|
||||
-GNinja
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
|
||||
parameters:
|
||||
componentName: ${{ parameters.componentName }}
|
||||
os: ${{ job.os }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
|
||||
parameters:
|
||||
componentName: ${{ parameters.componentName }}
|
||||
os: ${{ job.os }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
|
||||
- ${{ if eq(job.os, 'ubuntu2204') }}:
|
||||
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
|
||||
parameters:
|
||||
aptPackages: ${{ parameters.aptPackages }}
|
||||
pipModules: ${{ parameters.pipModules }}
|
||||
gpuTarget: ${{ job.target }}
|
||||
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
|
||||
installLatestCMake: true
|
||||
extraCopyDirectories:
|
||||
- deps
|
||||
@@ -37,6 +37,7 @@ parameters:
|
||||
- libpfm4-dev
|
||||
- libtool
|
||||
- libopenmpi-dev
|
||||
- libsqlite3-dev
|
||||
- m4
|
||||
- ninja-build
|
||||
- openmpi-bin
|
||||
|
||||
@@ -13,7 +13,7 @@ steps:
|
||||
CC: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
|
||||
inputs:
|
||||
targetType: inline
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
workingDirectory: $(Agent.BuildDirectory)/s
|
||||
script: |
|
||||
AZ_API="https://dev.azure.com/ROCm-CI/ROCm-CI/_apis"
|
||||
GH_API="https://api.github.com/repos/ROCm"
|
||||
|
||||
@@ -176,6 +176,7 @@ HBM
|
||||
HCA
|
||||
HGX
|
||||
HIPCC
|
||||
hipDataType
|
||||
HIPExtension
|
||||
HIPIFY
|
||||
HIPification
|
||||
|
||||
@@ -29,7 +29,6 @@ additional licenses. Please review individual repositories for more information.
|
||||
| [AMD SMI](https://github.com/ROCm/amdsmi) | [MIT](https://github.com/ROCm/amdsmi/blob/amd-staging/LICENSE) |
|
||||
| [aomp](https://github.com/ROCm/aomp/) | [Apache 2.0](https://github.com/ROCm/aomp/blob/aomp-dev/LICENSE) |
|
||||
| [aomp-extras](https://github.com/ROCm/aomp-extras/) | [MIT](https://github.com/ROCm/aomp-extras/blob/aomp-dev/LICENSE) |
|
||||
| [AQLprofile] | [MIT](https://github.com/ROCm/aqlprofile/blob/amd-staging/LICENSE) |
|
||||
| [Code Object Manager (Comgr)](https://github.com/ROCm/llvm-project/tree/amd-staging/amd/comgr) | [The University of Illinois/NCSA](https://github.com/ROCm/llvm-project/blob/amd-staging/amd/comgr/LICENSE.txt) |
|
||||
| [Composable Kernel](https://github.com/ROCm/composable_kernel) | [MIT](https://github.com/ROCm/composable_kernel/blob/develop/LICENSE) |
|
||||
| [half](https://github.com/ROCm/half/) | [MIT](https://github.com/ROCm/half/blob/rocm/LICENSE.txt) |
|
||||
@@ -47,6 +46,7 @@ additional licenses. Please review individual repositories for more information.
|
||||
| [hipSPARSE](https://github.com/ROCm/hipSPARSE/) | [MIT](https://github.com/ROCm/hipSPARSE/blob/develop/LICENSE.md) |
|
||||
| [hipSPARSELt](https://github.com/ROCm/hipSPARSELt/) | [MIT](https://github.com/ROCm/hipSPARSELt/blob/develop/LICENSE.md) |
|
||||
| [hipTensor](https://github.com/ROCm/hipTensor) | [MIT](https://github.com/ROCm/hipTensor/blob/develop/LICENSE) |
|
||||
| hsa-amd-aqlprofile | [AMD Software EULA](https://www.amd.com/en/legal/eula/amd-software-eula.html) |
|
||||
| [llvm-project](https://github.com/ROCm/llvm-project/) | [Apache](https://github.com/ROCm/llvm-project/blob/amd-staging/LICENSE.TXT) |
|
||||
| [llvm-project/flang](https://github.com/ROCm/llvm-project/tree/amd-staging/flang) | [Apache 2.0](https://github.com/ROCm/llvm-project/blob/amd-staging/flang/LICENSE.TXT) |
|
||||
| [MIGraphX](https://github.com/ROCm/AMDMIGraphX/) | [MIT](https://github.com/ROCm/AMDMIGraphX/blob/develop/LICENSE) |
|
||||
@@ -132,10 +132,12 @@ companies.
|
||||
### Package licensing
|
||||
|
||||
:::{attention}
|
||||
ROCprof Trace Decoder and AOCC CPU optimizations are provided in binary form, subject to the license agreement enclosed on [GitHub](https://github.com/ROCm/rocprof-trace-decoder/blob/amd-mainline/LICENSE) for ROCprof Trace Decoder, and [Developer Central](https://www.amd.com/en/developer/aocc.html) for AOCC. By using, installing,
|
||||
copying or distributing ROCprof Trace Decoder or AOCC CPU Optimizations, you agree to
|
||||
AQL Profiler and AOCC CPU optimization are both provided in binary form, each
|
||||
subject to the license agreement enclosed in the directory for the binary available
|
||||
in `/opt/rocm/share/doc/hsa-amd-aqlprofile/EULA`. By using, installing,
|
||||
copying or distributing AQL Profiler and/or AOCC CPU Optimizations, you agree to
|
||||
the terms and conditions of this license agreement. If you do not agree to the
|
||||
terms of this agreement, do not install, copy or use ROCprof Trace Decoder or the
|
||||
terms of this agreement, do not install, copy or use the AQL Profiler and/or the
|
||||
AOCC CPU Optimizations.
|
||||
:::
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.1 MiB |
@@ -55,7 +55,7 @@ The floating-point types supported by ROCm are listed in the following table.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15,15,70
|
||||
:widths: 15,25,60
|
||||
|
||||
*
|
||||
- Type name
|
||||
@@ -63,18 +63,19 @@ The floating-point types supported by ROCm are listed in the following table.
|
||||
- Description
|
||||
*
|
||||
- float8 (E4M3)
|
||||
- ``__hip_fp8_e4m3_fnuz``
|
||||
- An 8-bit floating-point number that mostly follows IEEE-754 conventions
|
||||
and **S1E4M3** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_,
|
||||
with expanded range and no infinity or signed zero. NaN is represented
|
||||
as negative zero.
|
||||
- | ``__hip_fp8_e4m3_fnuz``,
|
||||
| ``__hip_fp8_e4m3``
|
||||
- An 8-bit floating-point number with **S1E4M3** bit layout, as described in :doc:`low precision floating point types page <hip:reference/low_fp_types>`.
|
||||
The FNUZ variant has expanded range with no infinity or signed zero (NaN represented as negative zero),
|
||||
while the OCP variant follows the Open Compute Project specification.
|
||||
*
|
||||
- float8 (E5M2)
|
||||
- ``__hip_fp8_e5m2_fnuz``
|
||||
- An 8-bit floating-point number mostly following IEEE-754 conventions and
|
||||
**S1E5M2** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_,
|
||||
with expanded range and no infinity or signed zero. NaN is represented
|
||||
as negative zero.
|
||||
- | ``__hip_fp8_e5m2_fnuz``,
|
||||
| ``__hip_fp8_e5m2``
|
||||
- An 8-bit floating-point number with **S1E5M2** bit layout, as described in :doc:`low precision floating point types page <hip:reference/low_fp_types>`.
|
||||
The FNUZ variant has expanded range with no infinity or signed zero (NaN represented as negative zero),
|
||||
while the OCP variant follows the Open Compute Project specification.
|
||||
|
||||
*
|
||||
- float16
|
||||
- ``half``
|
||||
@@ -107,9 +108,8 @@ The floating-point types supported by ROCm are listed in the following table.
|
||||
* The float8 and tensorfloat32 types are internal types used in calculations
|
||||
in Matrix Cores and can be stored in any type of the same size.
|
||||
|
||||
* The encodings for FP8 (E5M2) and FP8 (E4M3) that the
|
||||
MI300 series natively supports differ from the FP8 (E5M2) and FP8 (E4M3)
|
||||
encodings used in NVIDIA H100
|
||||
* CNDA3 natively supports FP8 FNUZ (E4M3 and E5M2), which differs from the customised
|
||||
FP8 format used in NVIDIA's H100
|
||||
(`FP8 Formats for Deep Learning <https://arxiv.org/abs/2209.05433>`_).
|
||||
|
||||
* In some AMD documents and articles, float8 (E5M2) is referred to as bfloat8.
|
||||
@@ -128,7 +128,7 @@ pages.
|
||||
:header-rows: 1
|
||||
|
||||
*
|
||||
- Icon
|
||||
- Icon
|
||||
- Definition
|
||||
|
||||
*
|
||||
@@ -163,12 +163,137 @@ pages.
|
||||
* Any type can be emulated by software, but this page does not cover such
|
||||
cases.
|
||||
|
||||
Data type support by Hardware Architecture
|
||||
Data type support by hardware architecture
|
||||
==========================================
|
||||
|
||||
The MI200 series GPUs, which include MI210, MI250, and MI250X, are based on the
|
||||
CDNA2 architecture. The MI300 series GPUs, consisting of MI300A, MI300X, and
|
||||
MI325X, are based on the CDNA3 architecture.
|
||||
AMD's GPU lineup spans multiple architecture generations:
|
||||
|
||||
* CDNA1 architecture: includes models such as MI100
|
||||
* CDNA2 architecture: includes models such as MI210, MI250, and MI250X
|
||||
* CDNA3 architecture: includes models such as MI300A, MI300X, and MI325X
|
||||
* RDNA3 architecture: includes models such as RX 7900XT and RX 7900XTX
|
||||
* RDNA4 architecture: includes models such as RX 9070 and RX 9070XT
|
||||
|
||||
HIP C++ type implementation support
|
||||
-----------------------------------
|
||||
|
||||
The HIP C++ types available on different hardware platforms are listed in the
|
||||
following table.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
*
|
||||
- HIP C++ Type
|
||||
- CDNA1
|
||||
- CDNA2
|
||||
- CDNA3
|
||||
- RDNA3
|
||||
- RDNA4
|
||||
|
||||
*
|
||||
- ``int8_t``, ``uint8_t``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``int16_t``, ``uint16_t``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``int32_t``, ``uint32_t``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``int64_t``, ``uint64_t``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``__hip_fp8_e4m3_fnuz``
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
*
|
||||
- ``__hip_fp8_e5m2_fnuz``
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
*
|
||||
- ``__hip_fp8_e4m3``
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``__hip_fp8_e5m2``
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``half``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``bfloat16``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``float``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- ``double``
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
.. note::
|
||||
|
||||
Library support for specific data types is contingent upon hardware support.
|
||||
Even if a ROCm library indicates support for a particular data type, that type
|
||||
will only be fully functional if the underlying hardware architecture (as shown
|
||||
in the table above) also supports it. For example, fp8 types are only available
|
||||
on architectures shown with a checkmark in the relevant rows.
|
||||
|
||||
Compute units support
|
||||
---------------------
|
||||
@@ -190,19 +315,33 @@ The following table lists data type support for compute units.
|
||||
- int32
|
||||
- int64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
@@ -224,7 +363,7 @@ The following table lists data type support for compute units.
|
||||
- float32
|
||||
- float64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -233,7 +372,7 @@ The following table lists data type support for compute units.
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -242,7 +381,27 @@ The following table lists data type support for compute units.
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -271,19 +430,33 @@ The following table lists data type support for AMD GPU matrix cores.
|
||||
- int32
|
||||
- int64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
@@ -305,7 +478,7 @@ The following table lists data type support for AMD GPU matrix cores.
|
||||
- float32
|
||||
- float64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -314,7 +487,7 @@ The following table lists data type support for AMD GPU matrix cores.
|
||||
- ✅
|
||||
- ❌
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -323,7 +496,7 @@ The following table lists data type support for AMD GPU matrix cores.
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
@@ -332,6 +505,26 @@ The following table lists data type support for AMD GPU matrix cores.
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
|
||||
Atomic operations support
|
||||
-------------------------
|
||||
|
||||
@@ -357,19 +550,33 @@ page.
|
||||
- int32
|
||||
- int64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -391,7 +598,7 @@ page.
|
||||
- float32
|
||||
- float64
|
||||
*
|
||||
- MI100
|
||||
- CDNA1
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -400,7 +607,7 @@ page.
|
||||
- ✅
|
||||
- ❌
|
||||
*
|
||||
- MI200 series
|
||||
- CDNA2
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -409,7 +616,7 @@ page.
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- MI300 series
|
||||
- CDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
@@ -418,6 +625,26 @@ page.
|
||||
- ✅
|
||||
- ✅
|
||||
|
||||
*
|
||||
- RDNA3
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
|
||||
*
|
||||
- RDNA4
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
|
||||
.. note::
|
||||
|
||||
You can emulate atomic operations using software for cases that are not
|
||||
@@ -452,36 +679,98 @@ detailed description.
|
||||
- int16
|
||||
- int32
|
||||
- int64
|
||||
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- :doc:`Composable Kernel <composable_kernel:reference/Composable_Kernel_supported_scalar_types>`
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
*
|
||||
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
*
|
||||
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
*
|
||||
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`hipCUB <hipcub:api-reference/data-type-support>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
|
||||
*
|
||||
- :doc:`hipSOLVER <hipsolver:reference/precision>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`hipTensor <hiptensor:api-reference/api-reference>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`MIGraphX <amdmigraphx:reference/cpp>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`MIOpen <miopen:reference/datatypes>`
|
||||
- ⚠️/⚠️
|
||||
- ❌/❌
|
||||
- ⚠️/⚠️
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`RCCL <rccl:api-reference/library-specification>`
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocFFT <rocfft:reference/api>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
|
||||
*
|
||||
- :doc:`rocSOLVER <rocsolver:reference/precision>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`rocThrust <rocthrust:data-type-support>`
|
||||
- ✅/✅
|
||||
@@ -489,6 +778,14 @@ detailed description.
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocWMMA <rocwmma:api-reference/api-reference-guide>`
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/✅
|
||||
- ❌/❌
|
||||
|
||||
|
||||
.. tab-item:: Floating-point types
|
||||
:sync: floating-point-type
|
||||
|
||||
@@ -504,42 +801,17 @@ detailed description.
|
||||
- tensorfloat32
|
||||
- float32
|
||||
- float64
|
||||
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- :doc:`Composable Kernel <composable_kernel:reference/Composable_Kernel_supported_scalar_types>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
*
|
||||
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
*
|
||||
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
*
|
||||
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`hipCUB <hipcub:api-reference/data-type-support>`
|
||||
- ❌/❌
|
||||
@@ -549,6 +821,117 @@ detailed description.
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
|
||||
*
|
||||
- :doc:`hipSOLVER <hipsolver:reference/precision>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
|
||||
*
|
||||
- :doc:`hipTensor <hiptensor:api-reference/api-reference>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`MIGraphX <amdmigraphx:reference/cpp>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`MIOpen <miopen:reference/datatypes>`
|
||||
- ⚠️/⚠️
|
||||
- ⚠️/⚠️
|
||||
- ✅/✅
|
||||
- ⚠️/⚠️
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ⚠️/⚠️
|
||||
|
||||
*
|
||||
- :doc:`RCCL <rccl:api-reference/library-specification>`
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocFFT <rocfft:reference/api>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/❌
|
||||
- NA/❌
|
||||
- NA/✅
|
||||
- NA/✅
|
||||
|
||||
*
|
||||
- :doc:`rocSOLVER <rocsolver:reference/precision>`
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ❌/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocThrust <rocthrust:data-type-support>`
|
||||
- ❌/❌
|
||||
@@ -559,62 +942,123 @@ detailed description.
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
*
|
||||
- :doc:`rocWMMA <rocwmma:api-reference/api-reference-guide>`
|
||||
- ✅/❌
|
||||
- ✅/❌
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
- ✅/✅
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
As random number generation libraries, rocRAND and hipRAND only specify output
|
||||
data types for the random values they generate, with no need for input data
|
||||
types.
|
||||
|
||||
Libraries internal calculations type support
|
||||
--------------------------------------------
|
||||
hipDataType enumeration
|
||||
-----------------------
|
||||
|
||||
The following tables list ROCm library support for specific internal data types.
|
||||
Refer to the corresponding library data type support page for a detailed
|
||||
description.
|
||||
The ``hipDataType`` enumeration defines data precision types and is primarily
|
||||
used when the data reference itself does not include type information, such as
|
||||
in ``void*`` pointers. This enumeration is mainly utilized in BLAS libraries.
|
||||
The HIP type equivalents of the ``hipDataType`` enumeration are listed in the
|
||||
following table with descriptions and values.
|
||||
|
||||
.. tab-set::
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 25,25,10,40
|
||||
|
||||
.. tab-item:: Integral types
|
||||
:sync: integral-type
|
||||
*
|
||||
- hipDataType
|
||||
- HIP type
|
||||
- Value
|
||||
- Description
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
*
|
||||
- ``HIP_R_8I``
|
||||
- ``int8_t``
|
||||
- 3
|
||||
- 8-bit real signed integer.
|
||||
|
||||
*
|
||||
- Library internal data type name
|
||||
- int8
|
||||
- int16
|
||||
- int32
|
||||
- int64
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
*
|
||||
- ``HIP_R_8U``
|
||||
- ``uint8_t``
|
||||
- 8
|
||||
- 8-bit real unsigned integer.
|
||||
|
||||
*
|
||||
- ``HIP_R_16I``
|
||||
- ``int16_t``
|
||||
- 20
|
||||
- 16-bit real signed integer.
|
||||
|
||||
.. tab-item:: Floating-point types
|
||||
:sync: floating-point-type
|
||||
*
|
||||
- ``HIP_R_16U``
|
||||
- ``uint16_t``
|
||||
- 22
|
||||
- 16-bit real unsigned integer.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
*
|
||||
- ``HIP_R_32I``
|
||||
- ``int32_t``
|
||||
- 10
|
||||
- 32-bit real signed integer.
|
||||
|
||||
*
|
||||
- Library internal data type name
|
||||
- float8 (E4M3)
|
||||
- float8 (E5M2)
|
||||
- float16
|
||||
- bfloat16
|
||||
- tensorfloat32
|
||||
- float32
|
||||
- float64
|
||||
*
|
||||
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
*
|
||||
- ``HIP_R_32U``
|
||||
- ``uint32_t``
|
||||
- 12
|
||||
- 32-bit real unsigned integer.
|
||||
|
||||
*
|
||||
- ``HIP_R_32F``
|
||||
- ``float``
|
||||
- 0
|
||||
- 32-bit real single precision floating-point.
|
||||
|
||||
*
|
||||
- ``HIP_R_64F``
|
||||
- ``double``
|
||||
- 1
|
||||
- 64-bit real double precision floating-point.
|
||||
|
||||
*
|
||||
- ``HIP_R_16F``
|
||||
- ``half``
|
||||
- 2
|
||||
- 16-bit real half precision floating-point.
|
||||
|
||||
*
|
||||
- ``HIP_R_16BF``
|
||||
- ``bfloat16``
|
||||
- 14
|
||||
- 16-bit real bfloat16 precision floating-point.
|
||||
|
||||
*
|
||||
- ``HIP_R_8F_E4M3``
|
||||
- ``__hip_fp8_e4m3``
|
||||
- 28
|
||||
- 8-bit real float8 precision floating-point (OCP version).
|
||||
|
||||
*
|
||||
- ``HIP_R_8F_E5M2``
|
||||
- ``__hip_fp8_e5m2``
|
||||
- 29
|
||||
- 8-bit real bfloat8 precision floating-point (OCP version).
|
||||
|
||||
*
|
||||
- ``HIP_R_8F_E4M3_FNUZ``
|
||||
- ``__hip_fp8_e4m3_fnuz``
|
||||
- 1000
|
||||
- 8-bit real float8 precision floating-point (FNUZ version).
|
||||
|
||||
*
|
||||
- ``HIP_R_8F_E5M2_FNUZ``
|
||||
- ``__hip_fp8_e5m2_fnuz``
|
||||
- 1001
|
||||
- 8-bit real bfloat8 precision floating-point (FNUZ version).
|
||||
|
||||
The full list of the ``hipDataType`` enumeration listed in `library_types.h <https://github.com/ROCm/hip/blob/amd-staging/include/hip/library_types.h>`_ .
|
||||
|
||||
Reference in New Issue
Block a user