diff options
author | Ganesh Kumar <46193450+gkathirv@users.noreply.github.com> | 2020-09-17 20:30:45 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-17 10:00:45 -0500 |
commit | 0f332c73a6835a2fe978e35d63ae13cc5b5212ff (patch) | |
tree | 07b3e1d94b641b3bec1bc55e1a90860839986d9d | |
parent | 91bd99b4b2fbc81123210881f243e0bd6d8445b2 (diff) | |
download | spack-0f332c73a6835a2fe978e35d63ae13cc5b5212ff.tar.gz spack-0f332c73a6835a2fe978e35d63ae13cc5b5212ff.tar.bz2 spack-0f332c73a6835a2fe978e35d63ae13cc5b5212ff.tar.xz spack-0f332c73a6835a2fe978e35d63ae13cc5b5212ff.zip |
Rocm 3.7 miopen, miopengemm, rocalution and rocm-opencl (#18690)
* ROCm 3.5 miopen recipe
* fixing flake8 issues
* cmake variant fix
* min support fix
* variant possible values
* rocm3.7 change for miopen, rocalution and rocm-opencl
* review comments
5 files changed, 32 insertions, 17 deletions
diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py index 3a3dbf7f4f..890026e69d 100644 --- a/var/spack/repos/builtin/packages/miopen-hip/package.py +++ b/var/spack/repos/builtin/packages/miopen-hip/package.py @@ -11,10 +11,11 @@ class MiopenHip(CMakePackage): """AMD's library for high performance machine learning primitives.""" homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.5.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.7.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('3.7.0', sha256='f6a6ddd8d39bb76b7f7d91e68ade3b45e0201181145658c43b967065a354b103') version('3.5.0', sha256='aa362e69c4dce7f5751f0ee04c745735ea5454c8101050e9b92cc60fa3c0fb82') variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') @@ -25,7 +26,7 @@ class MiopenHip(CMakePackage): depends_on('bzip2', type='link') depends_on('sqlite', type='link') depends_on('half', type='build') - for ver in ['3.5.0']: + for ver in ['3.5.0', '3.7.0']: depends_on('hip@' + ver, type='build', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='link', when='@' + ver) diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py index 9f41f49126..af84fd6516 100644 --- a/var/spack/repos/builtin/packages/miopen-opencl/package.py +++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py @@ -11,10 +11,11 @@ class MiopenOpencl(CMakePackage): """AMD's library for high performance machine learning primitives.""" homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.5.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.7.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('3.7.0', sha256='f6a6ddd8d39bb76b7f7d91e68ade3b45e0201181145658c43b967065a354b103') version('3.5.0', sha256='aa362e69c4dce7f5751f0ee04c745735ea5454c8101050e9b92cc60fa3c0fb82') variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') @@ -25,7 +26,7 @@ class MiopenOpencl(CMakePackage): depends_on('bzip2', type='link') depends_on('sqlite', type='link') depends_on('half', type='build') - for ver in ['3.5.0']: + for ver in ['3.5.0', '3.7.0']: depends_on('hip@' + ver, type='build', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='link', when='@' + ver) @@ -33,6 +34,7 @@ class MiopenOpencl(CMakePackage): depends_on('rocm-opencl@' + ver, type='build', when='@' + ver) depends_on('miopengemm@1.1.6:', type='link', when='@' + ver) depends_on('rocm-device-libs@' + ver, type='link', when='@' + ver) + depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py index 15e26051dc..1bc40504f6 100644 --- a/var/spack/repos/builtin/packages/miopengemm/package.py +++ b/var/spack/repos/builtin/packages/miopengemm/package.py @@ -20,5 +20,6 @@ class Miopengemm(CMakePackage): variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') depends_on('cmake@3:', type='build') - depends_on('rocm-cmake@3.5:', type='build', when='@1.1.6') - depends_on('rocm-opencl@3.5:', type='build', when='@1.1.6') + for ver in ['1.1.6']: + depends_on('rocm-cmake@' + '3.7.0', type='build', when='@' + ver) + depends_on('rocm-opencl@' + '3.7.0', type='build', when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index a79f81184a..0d90588d97 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -16,20 +16,22 @@ class Rocalution(CMakePackage): other scientific software packages.""" homepage = "https://github.com/ROCmSoftwarePlatform/rocALUTION" - url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-3.5.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-3.7.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('3.7.0', sha256='4d6b20aaaac3bafb7ec084d684417bf578349203b0f9f54168f669e3ec5699f8') version('3.5.0', sha256='be2f78c10c100d7fd9df5dd2403a44700219c2cbabaacf2ea50a6e2241df7bfe') - depends_on('cmake@3.5.2', type='build') - for ver in ['3.5.0']: + depends_on('cmake@3.5:', type='build') + for ver in ['3.5.0', '3.7.0']: depends_on('hip@' + ver, when='@' + ver) - depends_on('rocblas@' + ver, type='build', when='@' + ver) - depends_on('rocsparse@' + ver, type='build', when='@' + ver) + depends_on('rocblas@' + ver, type='link', when='@' + ver) + depends_on('rocprim@' + ver, type='link', when='@' + ver) + depends_on('rocsparse@' + ver, type='link', when='@' + ver) depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='build', when='@' + ver) - depends_on('rocprim@' + ver, type='build', when='@' + ver) + depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver) patch('0001-fix-hip-build-error.patch') @@ -38,7 +40,6 @@ class Rocalution(CMakePackage): def cmake_args(self): args = [ - '-DSUPPORT_OMP=ON', '-DSUPPORT_HIP=ON', '-DSUPPORT_MPI=OFF', '-DBUILD_CLIENTS_SAMPLES=OFF' diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py index e761e7481a..f677a38091 100644 --- a/var/spack/repos/builtin/packages/rocm-opencl/package.py +++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py @@ -10,15 +10,25 @@ class RocmOpencl(CMakePackage): """OpenCL: Open Computing Language on ROCclr""" homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" - url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + def url_for_version(self, version): + if version == Version('3.5.0'): + return "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz" + + url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz" + return url.format(version) + + version('3.7.0', sha256='283e1dfe4c3d2e8af4d677ed3c20e975393cdb0856e3ccd77b9c7ed2a151650b') version('3.5.0', sha256='511b617d5192f2d4893603c1a02402b2ac9556e9806ff09dd2a91d398abf39a0') + depends_on('cmake@3:', type='build') - depends_on('rocclr@3.5.0', type='build', when='@3.5.0') - depends_on('comgr@3.5.0', type='build', when='@3.5.0') depends_on('mesa~llvm@18.3:', type='link') + for ver in ['3.5.0', '3.7.0']: + depends_on('rocclr@' + ver, type='build', when='@' + ver) + depends_on('comgr@' + ver, type='build', when='@' + ver) + depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver) def flag_handler(self, name, flags): # The includes are messed up in ROCm 3.5.0: @@ -27,7 +37,7 @@ class RocmOpencl(CMakePackage): # commented out. So instead we provide # all the includes... - if self.spec.satisfies('@3.5.0') and name in ('cflags', 'cxxflags'): + if name in ('cflags', 'cxxflags'): rocclr = self.spec['rocclr'].prefix.include extra_includes = [ 'include', |