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
This commit is contained in:
Ganesh Kumar 2020-09-17 20:30:45 +05:30 committed by GitHub
parent 91bd99b4b2
commit 0f332c73a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 17 deletions

View File

@ -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)

View File

@ -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 = [

View File

@ -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)

View File

@ -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 @@ def setup_build_environment(self, env):
def cmake_args(self):
args = [
'-DSUPPORT_OMP=ON',
'-DSUPPORT_HIP=ON',
'-DSUPPORT_MPI=OFF',
'-DBUILD_CLIENTS_SAMPLES=OFF'

View File

@ -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 @@ def flag_handler(self, name, flags):
# 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',