AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev (#19957)

* AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev and updates to hip/hip-rocclr

* Update package.py
This commit is contained in:
arjun-raj-kuppala 2020-11-18 20:47:10 -08:00 committed by GitHub
parent 932f128bc8
commit a680df8453
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 145 additions and 16 deletions

View file

@ -0,0 +1,28 @@
From 526efe86427a4d49da38773534d84025dd4246c3 Mon Sep 17 00:00:00 2001
From: Ethan Stewart <ethan.stewart@amd.com>
Date: Tue, 10 Nov 2020 15:32:59 -0600
Subject: [PATCH] Add cmake option for copying source for debugging.
---
openmp/CMakeLists.txt | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
index a86e83c50212..51962b561a3b 100644
--- a/openmp/CMakeLists.txt
+++ b/openmp/CMakeLists.txt
@@ -103,3 +103,11 @@ endif()
# Now that we have seen all testsuites, create the check-openmp target.
construct_check_openmp_target()
+
+option(DEBUG_COPY_SOURCE "Enable source code copy for openmp debug build."
+ ${ENABLE_SOURCE_COPY})
+if (${ENABLE_SOURCE_COPY})
+ install(DIRECTORY runtime/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/runtime)
+ install(DIRECTORY libomptarget/src libomptarget/plugins DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libomptarget)
+ install(DIRECTORY libompd/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libompd)
+endif()
--
2.17.1

View file

@ -8,6 +8,22 @@
tools_url = 'https://github.com/ROCm-Developer-Tools'
compute_url = 'https://github.com/RadeonOpenCompute'
# 3.9 SHA Keys
aomp39 = dict()
aomp39 = {
"aomp":
"14fc6867af0b17e3bff8cb42cb36f509c95a29b7a933a106bf6778de21f6c123",
"devlib":
"c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7",
"llvm":
"f0a0b9fec0626878340a15742e73a56f155090011716461edcb069dcf05e6b30",
"flang":
"43d57bcc87fab092ac242e36da62588a87b6fa91f9e81fdb330159497afdecb3",
"extras":
"014fca1fba54997c6db0e84822df274fb6807698b6856da4f737f38f10ab0e5d"
}
# 3.8 SHA Keys
aomp38 = dict()
aomp38 = {
@ -65,17 +81,19 @@ class Aomp(Package):
"""llvm openmp compiler from AMD."""
homepage = tools_url + "/aomp"
url = tools_url + "/aomp/archive/rocm-3.8.0.tar.gz"
url = tools_url + "/aomp/archive/rocm-3.9.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08']
version('3.9.0', sha256=aomp38['aomp'])
version('3.8.0', sha256=aomp38['aomp'])
version('3.7.0', sha256=aomp37['aomp'])
version('3.5.0', sha256=aomp35['aomp'])
depends_on('cmake@3.5.2:3.13.4', type='build')
depends_on('mesa~llvm@18.3:', type=('build', 'link'))
depends_on('mesa18~llvm@18.3:', type=('build', 'link'))
depends_on('py-setuptools@44.1.0', type='build')
depends_on('python@2.7.18', type='build')
depends_on('python@2.7.18', type='build', when='@3.5.0:3.8.0')
depends_on('python@3.6.9', type='build', when='@3.9.0:')
depends_on('py-pip', when='@3.8.0:', type='build')
depends_on('py-wheel@0.29.0', when='@3.8.0:', type=('build', 'run'))
depends_on('perl-data-dumper', type='build')
@ -83,11 +101,60 @@ class Aomp(Package):
depends_on('elfutils', type=('build', 'link'))
depends_on('libffi', type=('build', 'link'))
for ver in ['3.5.0', '3.7.0', '3.8.0']:
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
depends_on('hsakmt-roct@' + ver, type=('build', 'run'), when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type=('build', 'run'),
when='@' + ver)
depends_on('rocm-device-libs@' + ver, type=('build', 'run'),
when='@' + ver)
if ver != '3.5.0':
depends_on('hip@' + ver, type=('build', 'run'), when='@' + ver)
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
if ver == '3.9.0':
depends_on('rocm-gdb@' + ver, type=('build', 'run'),
when='@' + ver)
# 3.9.0 Resources
if ver == '3.9.0':
resource(
name='rocm-device-libs',
url=compute_url +
'/ROCm-Device-Libs/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['devlib'],
expand=True,
destination='aomp-dir',
placement='rocm-device-libs',
when='@3.9.0')
resource(
name='amd-llvm-project',
url=tools_url + '/amd-llvm-project/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['llvm'],
expand=True,
destination='aomp-dir',
placement='amd-llvm-project',
when='@3.9.0')
resource(
name='flang',
url=tools_url + '/flang/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['flang'],
expand=True,
destination='aomp-dir',
placement='flang',
when='@3.9.0')
resource(
name='aomp-extras',
url=tools_url + '/aomp-extras/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['extras'],
expand=True,
destination='aomp-dir',
placement='aomp-extras',
when='@3.9.0')
# 3.8.0 Resources
if ver == '3.8.0':
@ -233,6 +300,11 @@ class Aomp(Package):
destination='aomp-dir',
placement='opencl-on-vdi',
when='@3.5.0')
# Copy source files over for debug build in 3.9.0
patch('0001-Add-cmake-option-for-copying-source-for-debugging.patch',
working_dir='aomp-dir/amd-llvm-project', when='@3.9.0:')
# Revert back to .amdgcn.bc naming scheme for 3.8.0
patch('0001-Add-amdgcn-to-devicelibs-bitcode-names-3.8.patch',
working_dir='aomp-dir/amd-llvm-project', when='@3.8.0')
@ -256,8 +328,14 @@ def patch(self):
src = self.stage.source_path
libomptarget = '{0}/aomp-dir/amd-llvm-project/openmp/libomptarget'
aomp_extras = '{0}/aomp-dir/aomp-extras/aomp-device-libs'
flang = '{0}/aomp-dir/flang/'
if self.spec.version == Version('3.8.0'):
if self.spec.version >= Version('3.9.0'):
filter_file(
'ADDITIONAL_VERSIONS 2.7', 'ADDITIONAL_VERSIONS 3',
flang.format(src) + 'CMakeLists.txt')
if self.spec.version >= Version('3.8.0'):
filter_file(
'{CMAKE_INSTALL_PREFIX}', '{HSA_INCLUDE}',
libomptarget.format(src) + '/hostrpc/services/CMakeLists.txt')
@ -330,6 +408,13 @@ def patch(self):
'-Wl,-rpath,${COMGR_LIB}',
libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
def setup_run_environment(self, env):
devlibs_prefix = self.spec['rocm-device-libs'].prefix
aomp_prefix = self.spec['aomp'].prefix
env.set('HIP_DEVICE_LIB_PATH',
'{0}/amdgcn/bitcode'.format(format(devlibs_prefix)))
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
def setup_build_environment(self, env):
aomp_prefix = self.spec['aomp'].prefix
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
@ -347,7 +432,15 @@ def install(self, spec, prefix):
hsakmt_prefix = self.spec['hsakmt-roct'].prefix
comgr_prefix = self.spec['comgr'].prefix
opencl_src = '/aomp-dir/opencl-on-vdi/api/opencl'
omp_src = '/aomp-dir/amd-llvm-project/openmp'
debug_map = '-fdebug-prefix-map={0}{1}={2}'
debug_map_format = debug_map.format(src, omp_src, aomp_prefix)
components = dict()
if self.spec.version >= Version('3.9.0'):
bitcode_dir = '/amdgcn/bitcode'
else:
bitcode_dir = '/lib'
components['amd-llvm-project'] = [
'../aomp-dir/amd-llvm-project/llvm',
'-DLLVM_ENABLE_PROJECTS=clang;lld;compiler-rt',
@ -388,15 +481,16 @@ def install(self, spec, prefix):
components['aomp-extras'] = [
'../aomp-dir/aomp-extras',
'-DROCM_PATH=$ROCM_DIR ',
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src)
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DCMAKE_VERBOSE_MAKEFILE=1'
]
components['openmp'] = [
'../aomp-dir/amd-llvm-project/openmp',
'-DROCM_DIR={0}'.format(hsa_prefix),
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
@ -416,7 +510,7 @@ def install(self, spec, prefix):
components['openmp-debug'] = [
'../aomp-dir/amd-llvm-project/openmp',
'-DROCM_DIR={0}'.format(hsa_prefix),
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
@ -434,7 +528,13 @@ def install(self, spec, prefix):
'-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1'
]
if self.spec.version == Version('3.8.0'):
if self.spec.version >= Version('3.9.0'):
components['openmp-debug'] += [
'-DENABLE_SOURCE_COPY=ON',
'-DOPENMP_SOURCE_DEBUG_MAP={0}'.format(debug_map_format),
]
if self.spec.version >= Version('3.8.0'):
components['openmp-debug'] += [
'-DLIBOMP_ARCH=x86_64',
'-DLIBOMP_OMP_VERSION=50',

View file

@ -30,7 +30,7 @@ def url_for_version(self, version):
version('3.5.0', sha256='87c1ee9f02b8aa487b628c543f058198767c474cec3d21700596a73c028959e1')
depends_on('cmake@3:', type='build')
depends_on('mesa~llvm@18.3: swr=none', type='link')
depends_on('mesa18~llvm@18.3: swr=none', type='link')
depends_on('libelf', type='link', when="@3.7.0:")
depends_on('numactl', type='link', when="@3.7.0:")
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:

View file

@ -24,7 +24,7 @@ class Hip(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('perl@5.10:', type=('build', 'run'))
depends_on('mesa~llvm@18.3:')
depends_on('mesa18~llvm@18.3:')
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)

View file

@ -17,6 +17,7 @@ class RoctracerDev(CMakePackage):
maintainers = ['srekolam', 'arjun-raj-kuppala']
version('3.9.0', sha256='0678f9faf45058b16923948c66d77ba2c072283c975d167899caef969169b292')
version('3.8.0', sha256='5154a84ce7568cd5dba756e9508c34ae9fc62f4b0b5731f93c2ad68b21537ed1')
version('3.7.0', sha256='6fa5b771e990f09c242237ab334b9f01039ec7d54ccde993e719c5d6577d1518')
version('3.5.0', sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e')
@ -26,7 +27,7 @@ class RoctracerDev(CMakePackage):
depends_on('python@:2', type='build')
depends_on('py-cppheaderparser', type='build')
for ver in ['3.5.0', '3.7.0', '3.8.0']:
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
depends_on('rocminfo@' + ver, type='build', when='@' + ver)