AMD ROCm: Bump rocm-tensile with 3.9.0, 3.10.0, 4.0.0 releases (#20439)
This commit is contained in:
parent
ec7caefc69
commit
f41317d8b2
@ -0,0 +1,90 @@
|
|||||||
|
diff --git a/HostLibraryTests/CMakeLists.txt b/HostLibraryTests/CMakeLists.txt
|
||||||
|
index 79e1529..034f8bb 100644
|
||||||
|
--- a/HostLibraryTests/CMakeLists.txt
|
||||||
|
+++ b/HostLibraryTests/CMakeLists.txt
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
# CTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
-cmake_minimum_required(VERSION 3.5)
|
||||||
|
+cmake_minimum_required(VERSION 3.9)
|
||||||
|
|
||||||
|
project(TensileHostLibraryTest)
|
||||||
|
|
||||||
|
@@ -78,21 +78,7 @@ if(TENSILE_USE_HIP)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TENSILE_USE_OPENMP)
|
||||||
|
- #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_OPENMP")
|
||||||
|
- find_package(OpenMP QUIET)
|
||||||
|
- if (OPENMP_FOUND)
|
||||||
|
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
|
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
|
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
|
||||||
|
- else()
|
||||||
|
- if(EXISTS /etc/redhat-release)
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libgomp")
|
||||||
|
- else()
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
|
||||||
|
- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
|
||||||
|
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
|
||||||
|
- endif()
|
||||||
|
- endif()
|
||||||
|
+ find_package(OpenMP REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(configs)
|
||||||
|
@@ -187,6 +173,6 @@ if(TENSILE_USE_HIP)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TENSILE_USE_OPENMP)
|
||||||
|
- target_link_libraries(TensileTests PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
|
||||||
|
+ target_link_libraries(TensileTests PRIVATE OpenMP::OpenMP_CXX)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
diff --git a/Tensile/Source/CMakeLists.txt b/Tensile/Source/CMakeLists.txt
|
||||||
|
index 821fd53..fe65c9e 100644
|
||||||
|
--- a/Tensile/Source/CMakeLists.txt
|
||||||
|
+++ b/Tensile/Source/CMakeLists.txt
|
||||||
|
@@ -61,21 +61,7 @@ if(TENSILE_NEW_CLIENT)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TENSILE_USE_OPENMP)
|
||||||
|
- #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_OPENMP")
|
||||||
|
- find_package(OpenMP QUIET)
|
||||||
|
- if (OPENMP_FOUND)
|
||||||
|
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
|
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
|
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
|
||||||
|
- else ()
|
||||||
|
- if(EXISTS /etc/redhat-release)
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libgomp")
|
||||||
|
- else()
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
|
||||||
|
- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
|
||||||
|
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
|
||||||
|
- endif()
|
||||||
|
- endif()
|
||||||
|
+ find_package(OpenMP REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#set(TENSILE_CXX_COMPILER "${CMAKE_CXX_COMPILER}")
|
||||||
|
diff --git a/Tensile/Source/client/CMakeLists.txt b/Tensile/Source/client/CMakeLists.txt
|
||||||
|
index 9ccba86..081280b 100644
|
||||||
|
--- a/Tensile/Source/client/CMakeLists.txt
|
||||||
|
+++ b/Tensile/Source/client/CMakeLists.txt
|
||||||
|
@@ -52,12 +52,8 @@ target_link_libraries(TensileClient TensileHost ${Boost_LIBRARIES} rocm_smi)
|
||||||
|
add_executable(tensile_client main.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(tensile_client PRIVATE TensileHost TensileClient ${Boost_LIBRARIES})
|
||||||
|
-if(OpenMP_FOUND)
|
||||||
|
- target_link_libraries(tensile_client PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
|
||||||
|
-else()
|
||||||
|
- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
|
||||||
|
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
|
||||||
|
- target_link_libraries(tensile_client PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
|
||||||
|
+if(TENSILE_USE_OPENMP)
|
||||||
|
+ target_link_libraries(tensile_client PRIVATE OpenMP::OpenMP_CXX)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
foreach(arch IN LISTS TENSILE_GPU_ARCHS)
|
@ -14,17 +14,24 @@ class RocmTensile(CMakePackage):
|
|||||||
url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-3.8.0.tar.gz"
|
url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-3.8.0.tar.gz"
|
||||||
maintainers = ['srekolam', 'arjun-raj-kuppala']
|
maintainers = ['srekolam', 'arjun-raj-kuppala']
|
||||||
|
|
||||||
|
version('4.0.0', sha256='cf105ce8c3e352d19713b3bf8bda77f25c1a692c4f2ca82d631ba15523ecc1cd')
|
||||||
|
version('3.10.0', sha256='8d5b50aadfa56a9195e4c387b8eb351c9b9b7671b136b624e07fe28db24bd330')
|
||||||
|
version('3.9.0', sha256='17a011f8c3433d4f8c2dddabd5854cf96c406d24592b3942deb51672c570882e')
|
||||||
version('3.8.0', sha256='c78a11db85fdf54bfd26533ee6fa98f6a6e789fa423537993061497ac5f22ed6')
|
version('3.8.0', sha256='c78a11db85fdf54bfd26533ee6fa98f6a6e789fa423537993061497ac5f22ed6')
|
||||||
version('3.7.0', sha256='488a7f76ea42a7601d0557f53068ec4832a2c7c06bb1b511470a4e35599a5a4d')
|
version('3.7.0', sha256='488a7f76ea42a7601d0557f53068ec4832a2c7c06bb1b511470a4e35599a5a4d')
|
||||||
version('3.5.0', sha256='71eb3eed6625b08a4cedb539dd9b596e3d4cc82a1a8063d37d94c0765b6f8257')
|
version('3.5.0', sha256='71eb3eed6625b08a4cedb539dd9b596e3d4cc82a1a8063d37d94c0765b6f8257')
|
||||||
|
|
||||||
amdgpu_targets = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
|
tensile_architecture = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
|
||||||
|
|
||||||
variant('amdgpu_target', default='all', multi=True, values=amdgpu_targets)
|
variant('tensile_architecture', default='all', values=tensile_architecture, multi=False)
|
||||||
|
variant('openmp', default=True, description='Enable OpenMP')
|
||||||
|
|
||||||
depends_on('cmake@3:', type='build')
|
depends_on('cmake@3:', type='build')
|
||||||
|
# This is the default library format since 3.7.0
|
||||||
|
depends_on('msgpack-c@3:', when='@3.7:')
|
||||||
|
depends_on('boost', type=('build', 'link'))
|
||||||
|
|
||||||
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', '3.10.0', '4.0.0']:
|
||||||
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
|
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
|
||||||
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
|
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
|
||||||
depends_on('hip@' + ver, when='@' + ver)
|
depends_on('hip@' + ver, when='@' + ver)
|
||||||
@ -32,30 +39,28 @@ class RocmTensile(CMakePackage):
|
|||||||
# used in Tensile
|
# used in Tensile
|
||||||
depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
|
depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
|
||||||
depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
|
depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
|
||||||
depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
|
depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver + '+openmp')
|
||||||
|
depends_on('llvm-amdgpu@' + ver + '~openmp', type='build', when='@' + ver + '~openmp')
|
||||||
# This is the default library format since 3.7.0
|
|
||||||
depends_on('msgpack-c@3:', when='@3.7:')
|
|
||||||
depends_on('boost@1.58.0', type=('build', 'link'))
|
|
||||||
|
|
||||||
root_cmakelists_dir = 'Tensile/Source'
|
root_cmakelists_dir = 'Tensile/Source'
|
||||||
# Status: https://github.com/ROCmSoftwarePlatform/Tensile/commit/a488f7dadba34f84b9658ba92ce9ec5a0615a087
|
# Status: https://github.com/ROCmSoftwarePlatform/Tensile/commit/a488f7dadba34f84b9658ba92ce9ec5a0615a087
|
||||||
# Not yet landed in 3.7.0, nor 3.8.0.
|
# Not yet landed in 3.7.0, nor 3.8.0.
|
||||||
patch('0001-fix-compile-error.patch')
|
patch('0001-fix-compile-error.patch', when='@3.7.0:3.8.0')
|
||||||
|
patch('0002-require-openmp-when-tensile-use-openmp-is-on.patch', when='@3.9.0:')
|
||||||
|
|
||||||
def setup_build_environment(self, env):
|
def setup_build_environment(self, env):
|
||||||
env.set('CXX', self.spec['hip'].hipcc)
|
env.set('CXX', self.spec['hip'].hipcc)
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
archs = ",".join(self.spec.variants['amdgpu_target'].value)
|
arch = self.spec.variants['tensile_architecture'].value
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'-Damd_comgr_DIR={0}'.format(self.spec['comgr'].prefix),
|
'-Damd_comgr_DIR={0}'.format(self.spec['comgr'].prefix),
|
||||||
'-DTensile_COMPILER=hipcc',
|
'-DTensile_COMPILER=hipcc',
|
||||||
'-DTensile_ARCHITECTURE={0}'.format(archs),
|
'-DTensile_ARCHITECTURE={0}'.format(arch),
|
||||||
'-DTensile_LOGIC=asm_full',
|
'-DTensile_LOGIC=asm_full',
|
||||||
'-DTensile_CODE_OBJECT_VERSION=V3',
|
'-DTensile_CODE_OBJECT_VERSION=V3',
|
||||||
'-DBoost_USE_STATIC_LIBS=Off',
|
'-DBoost_USE_STATIC_LIBS=OFF',
|
||||||
|
'-DTENSILE_USE_OPENMP=ON',
|
||||||
'-DBUILD_WITH_TENSILE_HOST={0}'.format(
|
'-DBUILD_WITH_TENSILE_HOST={0}'.format(
|
||||||
'ON' if '@3.7.0:' in self.spec else 'OFF'
|
'ON' if '@3.7.0:' in self.spec else 'OFF'
|
||||||
)
|
)
|
||||||
@ -65,3 +70,8 @@ def cmake_args(self):
|
|||||||
args.append('-DTensile_LIBRARY_FORMAT=msgpack')
|
args.append('-DTensile_LIBRARY_FORMAT=msgpack')
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
with working_dir(self.build_directory):
|
||||||
|
install_tree('./client', prefix.client)
|
||||||
|
install_tree('./lib', prefix.lib)
|
||||||
|
Loading…
Reference in New Issue
Block a user