Skip to content
Snippets Groups Projects
Commit dac3821c authored by Eric Müller's avatar Eric Müller :mountain_bicyclist: Committed by Eleni Mathioulaki
Browse files

feat(py-torch): add new versions from dev upstream

parent ddc8735c
No related branches found
No related tags found
1 merge request!554Draft: feat: add and enable py-norse
Showing with 1535 additions and 0 deletions
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
# begin EBRAINS (modified): taken from upstream dev branch
class Pthreadpool(CMakePackage):
"""pthreadpool is a portable and efficient thread pool implementation."""
homepage = "https://github.com/Maratyszcza/pthreadpool"
git = "https://github.com/Maratyszcza/pthreadpool.git"
version("master", branch="master")
version("2023-08-29", commit="4fe0e1e183925bf8cfa6aae24237e724a96479b8") # py-torch@2.2
version("2021-04-13", commit="a134dd5d4cee80cce15db81a72e7f929d71dd413") # py-torch@1.9:2.1
version("2020-10-05", commit="fa75e65a58a5c70c09c30d17a1fe1c1dff1093ae") # py-torch@1.8
version("2020-06-15", commit="029c88620802e1361ccf41d1970bd5b07fd6b7bb") # py-torch@1.6:1.7
version("2019-10-29", commit="d465747660ecf9ebbaddf8c3db37e4a13d0c9103") # py-torch@1.5
version("2018-10-08", commit="13da0b4c21d17f94150713366420baaf1b5a46f4") # py-torch@1.0:1.4
version("2018-02-25", commit="2b06b31f6a315162348e1f3c24325eedaf6cc559") # py-torch@:0.4
generator("ninja")
depends_on("cmake@3.5:", type="build")
depends_on("python", type="build")
resource(
name="fxdiv",
git="https://github.com/Maratyszcza/FXdiv.git",
branch="master",
destination="deps",
placement="fxdiv",
)
resource(
name="googletest",
url="https://github.com/google/googletest/archive/release-1.12.0.zip",
sha256="ce7366fe57eb49928311189cb0e40e0a8bf3d3682fca89af30d884c25e983786",
destination="deps",
placement="googletest",
)
resource(
name="googlebenchark",
url="https://github.com/google/benchmark/archive/v1.5.3.zip",
sha256="bdefa4b03c32d1a27bd50e37ca466d8127c1688d834800c38f3c587a396188ee",
destination="deps",
placement="googlebenchmark",
)
def cmake_args(self):
return [
self.define("BUILD_SHARED_LIBS", True),
self.define("FXDIV_SOURCE_DIR", join_path(self.stage.source_path, "deps", "fxdiv")),
self.define(
"GOOGLETEST_SOURCE_DIR", join_path(self.stage.source_path, "deps", "googletest")
),
self.define(
"GOOGLEBENCHMARK_SOURCE_DIR",
join_path(self.stage.source_path, "deps", "googlebenchmark"),
),
self.define("PTHREADPOOL_BUILD_TESTS", self.run_tests),
self.define("PTHREADPOOL_BUILD_BENCHMARKS", self.run_tests),
]
# end EBRAINS
diff --git a/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu b/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
index 1cee04c200..f46003d9a9 100644
--- a/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
+++ b/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
@@ -10,48 +10,6 @@
namespace at { namespace native { namespace sparse { namespace cuda {
-std::string cusparseGetErrorString(cusparseStatus_t status) {
- switch(status)
- {
- case CUSPARSE_STATUS_SUCCESS:
- return "success";
-
- case CUSPARSE_STATUS_NOT_INITIALIZED:
- return "library not initialized";
-
- case CUSPARSE_STATUS_ALLOC_FAILED:
- return "resource allocation failed";
-
- case CUSPARSE_STATUS_INVALID_VALUE:
- return "an invalid numeric value was used as an argument";
-
- case CUSPARSE_STATUS_ARCH_MISMATCH:
- return "an absent device architectural feature is required";
-
- case CUSPARSE_STATUS_MAPPING_ERROR:
- return "an access to GPU memory space failed";
-
- case CUSPARSE_STATUS_EXECUTION_FAILED:
- return "the GPU program failed to execute";
-
- case CUSPARSE_STATUS_INTERNAL_ERROR:
- return "an internal operation failed";
-
- case CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED:
- return "the matrix type is not supported by this function";
-
- case CUSPARSE_STATUS_ZERO_PIVOT:
- return "an entry of the matrix is either structural zero or numerical zero (singular block)";
-
- default:
- {
- std::ostringstream oss;
- oss << "unknown error " << static_cast<int64_t>(status);
- return oss.str();
- }
- }
-}
-
inline void CUSPARSE_CHECK(cusparseStatus_t status)
{
if (status != CUSPARSE_STATUS_SUCCESS) {
--- pytorch/cmake/Modules/FindOpenMP.cmake.org 2020-05-26 17:43:53.000000000 +0900
+++ pytorch/cmake/Modules/FindOpenMP.cmake 2020-05-26 17:46:37.000000000 +0900
@@ -84,7 +84,7 @@
unset(OpenMP_FLAG_CANDIDATES)
set(OMP_FLAG_GNU "-fopenmp")
- set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp")
+ set(OMP_FLAG_Clang "-fopenmp" "-fopenmp=libomp" "-fopenmp=libiomp5")
# AppleClang may need a header file, search for omp.h with hints to brew
# default include dir
@@ -245,7 +245,7 @@
set(OpenMP_libomp_LIBRARY "${MKL_OPENMP_LIBRARY}" CACHE STRING "libomp location for OpenMP")
else()
find_library(OpenMP_libomp_LIBRARY
- NAMES omp gomp iomp5
+ NAMES fjomp omp gomp iomp5
HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}
DOC "libomp location for OpenMP"
)
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index ca560288a4..f5a29ecf43 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -130,7 +130,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;vecLib")
+set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;SSL2;vecLib")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -185,6 +185,20 @@ elseif(BLAS STREQUAL "vecLib")
set(BLAS_INFO "veclib")
set(BLAS_FOUND 1)
set(BLAS_LIBRARIES ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
elseif(BLAS STREQUAL "Generic")
# On Debian family, the CBLAS ABIs have been merged into libblas.so
find_library(BLAS_LIBRARIES blas)
@@ -201,7 +215,7 @@ if(NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR VECLIB_FOUND))
+ if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR SSL2_FOUND OR VECLIB_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if(NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index 47c80b45f6..efd4a87d06 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -276,6 +276,28 @@ if((NOT BLAS_LIBRARIES)
endif()
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 557ab649a4..56d1699736 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -174,7 +174,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;vecLib")
+set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;SSL2;vecLib")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -229,6 +229,20 @@ elseif(BLAS STREQUAL "vecLib")
set(BLAS_INFO "veclib")
set(BLAS_FOUND 1)
set(BLAS_LIBRARIES ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
elseif(BLAS STREQUAL "FlexiBLAS")
find_package(FlexiBLAS REQUIRED)
include_directories(SYSTEM ${FlexiBLAS_INCLUDE_DIR})
@@ -250,7 +264,7 @@ if(NOT INTERN_BUILD_MOBILE)
set(AT_MKL_SEQUENTIAL 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR VECLIB_FOUND OR FlexiBLAS_FOUND))
+ if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR SSL2_FOUND OR VECLIB_FOUND OR FlexiBLAS_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if(NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index 94942d520f..ae5b8db963 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -289,6 +289,28 @@ if((NOT BLAS_LIBRARIES)
endif()
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 00dcabd131..bddd3716ca 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -107,7 +107,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib")
+set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;SSL2")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -147,6 +147,20 @@ elseif(BLAS STREQUAL "vecLib")
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
else()
message(FATAL_ERROR "Unrecognized BLAS option: " ${BLAS})
endif()
@@ -156,7 +170,7 @@ if (NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND))
+ if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR SSL2_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if (NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index d6c0346739..72f4e18da2 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -225,6 +225,28 @@ if((NOT BLAS_LIBRARIES)
endif (BLAS_LIBRARIES)
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index a8e9769536..f0f91304c2 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -107,7 +107,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;FLAME")
+set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;SSL2;FLAME")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -147,6 +147,20 @@ elseif(BLAS STREQUAL "vecLib")
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
else()
message(FATAL_ERROR "Unrecognized BLAS option: " ${BLAS})
endif()
@@ -156,7 +170,7 @@ if (NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND))
+ if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR SSL2_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if (NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index e93e98a609..d43a6c40bd 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -239,6 +239,28 @@ if((NOT BLAS_LIBRARIES)
endif (BLAS_LIBRARIES)
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 36e1ab7682..0f02f51c47 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -114,7 +114,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;FLAME;Generic")
+set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;SSL2;FLAME;Generic")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -154,6 +154,20 @@ elseif(BLAS STREQUAL "vecLib")
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
elseif(BLAS STREQUAL "Generic")
# On Debian family, the CBLAS ABIs have been merged into libblas.so
find_library(BLAS_LIBRARIES blas)
@@ -168,7 +182,7 @@ if(NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR GENERIC_BLAS_FOUND))
+ if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR SSL2_FOUND OR GENERIC_BLAS_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if(NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index e93e98a609..d43a6c40bd 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -239,6 +239,28 @@ if((NOT BLAS_LIBRARIES)
endif (BLAS_LIBRARIES)
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 06464e799a..7f50bd8fa0 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -118,7 +118,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;FLAME;Generic")
+set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;SSL2;FLAME;Generic")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -157,6 +157,20 @@ elseif(BLAS STREQUAL "vecLib")
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
elseif(BLAS STREQUAL "Generic")
# On Debian family, the CBLAS ABIs have been merged into libblas.so
find_library(BLAS_LIBRARIES blas)
@@ -171,7 +185,7 @@ if(NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR GENERIC_BLAS_FOUND))
+ if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR SSL2_FOUND OR GENERIC_BLAS_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if(NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index e8f5d7c950..29219e057f 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -257,6 +257,28 @@ if((NOT BLAS_LIBRARIES)
endif()
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 5d57b9ca78..a74fe73b9f 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -118,7 +118,7 @@ else()
set(AT_MKLDNN_ENABLED 0)
set(AT_MKL_ENABLED 0)
endif()
-set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;vecLib")
+set_property(CACHE BLAS PROPERTY STRINGS "ATLAS;BLIS;Eigen;FLAME;Generic;MKL;OpenBLAS;SSL2;vecLib")
message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS})
if(BLAS STREQUAL "Eigen")
@@ -161,6 +161,20 @@ elseif(BLAS STREQUAL "vecLib")
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS})
+elseif(BLAS STREQUAL "SSL2")
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ message(STATUS "SSL2 Selected BLAS library")
+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so")
+ set(SSL2_FOUND ON)
+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ set(WITH_BLAS "ssl2")
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
elseif(BLAS STREQUAL "Generic")
# On Debian family, the CBLAS ABIs have been merged into libblas.so
find_library(BLAS_LIBRARIES blas)
@@ -175,7 +189,7 @@ if(NOT INTERN_BUILD_MOBILE)
set(AT_MKL_ENABLED 0)
set(AT_MKL_MT 0)
set(USE_BLAS 1)
- if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR VECLIB_FOUND))
+ if(NOT (ATLAS_FOUND OR BLIS_FOUND OR GENERIC_BLAS_FOUND OR MKL_FOUND OR OpenBLAS_FOUND OR SSL2_FOUND OR VECLIB_FOUND))
message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library")
find_package(BLAS)
if(NOT BLAS_FOUND)
diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake
index eefd6d475a..92ad75d32e 100644
--- a/cmake/Modules/FindBLAS.cmake
+++ b/cmake/Modules/FindBLAS.cmake
@@ -276,6 +276,28 @@ if((NOT BLAS_LIBRARIES)
endif()
endif()
+# BLAS in SSL2 library?
+if((NOT BLAS_LIBRARIES)
+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2")))
+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$"
+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$")
+ check_fortran_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-SSL2;--linkfortran"
+ "fjlapackexsve")
+ if (BLAS_LIBRARIES)
+ set(BLAS_INFO "ssl2")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran")
+ endif (BLAS_LIBRARIES)
+ else()
+ message(STATUS "Not built using fcc and FCC.")
+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
+ endif()
+endif()
+
# Generic BLAS library?
if((NOT BLAS_LIBRARIES)
AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic")))
This diff is collapsed.
diff --git a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
index 9cd678dfb4cc7..4630465115c7c 100644
--- a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
+++ b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
@@ -67,6 +67,14 @@ namespace at { namespace cuda {
//
// HIP doesn't have
// cuGetErrorString (maps to non-functional hipGetErrorString___)
+//
+// HIP from ROCm 3.5 on renamed hipOccupancyMaxActiveBlocksPerMultiprocessor
+// to hipModuleOccupancyMaxActiveBlocksPerMultiprocessor.
+#if HIP_VERSION < 305
+#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR hipOccupancyMaxActiveBlocksPerMultiprocessor
+#else
+#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR cuOccupancyMaxActiveBlocksPerMultiprocessor
+#endif
#define AT_FORALL_NVRTC(_) \
_(nvrtcVersion) \
@@ -76,7 +84,7 @@ namespace at { namespace cuda {
_(nvrtcGetPTX) \
_(cuModuleLoadData) \
_(cuModuleGetFunction) \
- _(cuOccupancyMaxActiveBlocksPerMultiprocessor) \
+ _(HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR)\
_(nvrtcGetErrorString) \
_(nvrtcGetProgramLogSize) \
_(nvrtcGetProgramLog) \
diff --git a/aten/src/ATen/native/cuda/SoftMax.cu b/aten/src/ATen/native/cuda/SoftMax.cu
index da1995123ecfc..f935eb4ef3d0e 100644
--- a/aten/src/ATen/native/cuda/SoftMax.cu
+++ b/aten/src/ATen/native/cuda/SoftMax.cu
@@ -127,8 +127,8 @@ void SpatialSoftMax_getLaunchSizes(
uint32_t block_threads = block.x * block.y;
smem_size = block.x == 1 ? 0 : block_threads * sizeof(accscalar_t);
int max_active_blocks;
-#ifdef __HIP_PLATFORM_HCC__
- // XXX HIP function signature is not compatible yet.
+#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305
+ // HIP function signature is not compatible yet.
uint32_t max_blocks;
cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks,
k, block_threads, smem_size);
diff --git a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
index 5586e49919727..27315ee475277 100644
--- a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
+++ b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
@@ -140,10 +140,10 @@ FusedKernelCUDA::FusedKernelCUDA(
nvrtc().cuModuleGetFunction(&function_, module_, name_.c_str()));
// Computes max blocks
-#ifdef __HIP_PLATFORM_HCC__
- // XXX HIP function signature is not compatible yet
+#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305
+ // HIP function signature is not compatible yet
uint32_t max_blocks;
- AT_CUDA_DRIVER_CHECK(nvrtc().cuOccupancyMaxActiveBlocksPerMultiprocessor(
+ AT_CUDA_DRIVER_CHECK(nvrtc().hipOccupancyMaxActiveBlocksPerMultiprocessor(
&max_blocks, function_, 128, 0));
maxBlocks_ = max_blocks;
#else
diff --git a/torch/utils/hipify/cuda_to_hip_mappings.py b/torch/utils/hipify/cuda_to_hip_mappings.py
index 7e21363cbe6af..26f269d92ae38 100644
--- a/torch/utils/hipify/cuda_to_hip_mappings.py
+++ b/torch/utils/hipify/cuda_to_hip_mappings.py
@@ -2890,7 +2890,7 @@
(
"cuOccupancyMaxActiveBlocksPerMultiprocessor",
(
- "hipOccupancyMaxActiveBlocksPerMultiprocessor",
+ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessor",
CONV_OCCUPANCY,
API_DRIVER,
),
@@ -2898,7 +2898,7 @@
(
"cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
(
- "hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
+ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
CONV_OCCUPANCY,
API_DRIVER,
HIP_UNSUPPORTED,
@@ -2906,12 +2906,12 @@
),
(
"cuOccupancyMaxPotentialBlockSize",
- ("hipOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER),
+ ("hipModuleOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER),
),
(
"cuOccupancyMaxPotentialBlockSizeWithFlags",
(
- "hipOccupancyMaxPotentialBlockSizeWithFlags",
+ "hipModuleOccupancyMaxPotentialBlockSizeWithFlags",
CONV_OCCUPANCY,
API_DRIVER,
HIP_UNSUPPORTED,
diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
index 8025a7de3c..0da37079d6 100644
--- a/caffe2/CMakeLists.txt
+++ b/caffe2/CMakeLists.txt
@@ -46,12 +46,19 @@ if (INTERN_BUILD_ATEN_OPS)
list(APPEND Caffe2_DEPENDENCY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE})
endif()
+# {Q/X,etc} NPACK support is enabled by default, if none of these options
+# are selected, turn this flag ON to incidate the support is disabled
+set(NNPACK_AND_FAMILY_DISABLED OFF)
+if(NOT (USE_NNPACK OR USE_QNNPACK OR USE_PYTORCH_QNNPACK OR USE_XNNPACK))
+ set(NNPACK_AND_FAMILY_DISABLED ON)
+endif()
+
# ---[ Caffe2 build
# Note: the folders that are being commented out have not been properly
# addressed yet.
# For pthreadpool_new_if_impl. TODO: Remove when threadpools are unitied.
-if (NOT MSVC)
+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED)
IF(NOT TARGET fxdiv)
SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
@@ -710,7 +717,7 @@ ELSEIF(USE_CUDA)
ENDIF()
-if (NOT MSVC)
+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED)
TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
endif()
diff --git a/caffe2/utils/CMakeLists.txt b/caffe2/utils/CMakeLists.txt
index 27aabb1315..3c7845c67d 100644
--- a/caffe2/utils/CMakeLists.txt
+++ b/caffe2/utils/CMakeLists.txt
@@ -36,7 +36,7 @@ list(APPEND Caffe2_CPU_SRCS
# ---[ threadpool/pthreadpool* is a local modification of the NNPACK
# pthreadpool with a very similar interface. Neither NNPACK, nor this
# thread pool supports Windows.
-if (NOT MSVC)
+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED)
add_definitions(-DUSE_INTERNAL_THREADPOOL_IMPL)
set(Caffe2_CPU_SRCS ${Caffe2_CPU_SRCS}
utils/threadpool/pthreadpool.cc
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment