[fbgemm] Update to 1.0.0 (#46622)

Co-authored-by: Steve <steve@imagus.au>
Co-authored-by: Steve Brain <sbrain@vixvizion.com>
This commit is contained in:
EvilMcStevil 2025-08-01 04:42:49 +10:00 committed by GitHub
parent 1441f2ae63
commit 0247d9414d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 71 additions and 85 deletions

View File

@ -1,57 +1,54 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58dcb9a..513a152 100644
index 0243f68..ccf7331 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
@@ -94,13 +94,12 @@ project(fbgemm VERSION 0.1 LANGUAGES CXX C)
include(GNUInstallDirs)
# function to extract filelists from defs.bzl file
# Load Python
-find_package(PythonInterp)
function(get_filelist name outputvar)
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" -c
@@ -43,9 +42,6 @@ endfunction()
project(fbgemm VERSION 0.1 LANGUAGES CXX C)
-set(FBGEMM_LIBRARY_TYPE "default" CACHE STRING
-
-set(FBGEMM_LIBRARY_TYPE "default"
- CACHE STRING
- "Type of library (shared, static, or default) to build")
+if(BUILD_SHARED_LIBS)
+set(FBGEMM_LIBRARY_TYPE "shared")
+else()
+set(FBGEMM_LIBRARY_TYPE "static")
+endif()
-set_property(CACHE FBGEMM_LIBRARY_TYPE PROPERTY STRINGS default static shared)
option(FBGEMM_BUILD_TESTS "Build fbgemm unit tests" ON)
option(FBGEMM_BUILD_BENCHMARKS "Build fbgemm benchmarks" ON)
option(FBGEMM_BUILD_DOCS "Build fbgemm documentation" OFF)
@@ -126,18 +122,11 @@ set_target_properties(fbgemm_generic fbgemm_avx2 fbgemm_avx512 PROPERTIES
#2) MSVC uses /MD in default cxx compiling flags,
#need to change it to /MT in static case
@@ -178,7 +177,7 @@ add_dependencies(fbgemm_autovec defs.bzl)
# 2) MSVC uses /MD in default cxx compiling flags,
# Need to change it to /MT in static case
if(MSVC)
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309")
- if(FBGEMM_LIBRARY_TYPE STREQUAL "static")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309 /wd4703 /bigobj")
+ if(NOT BUILD_SHARED_LIBS)
if(FBGEMM_LIBRARY_TYPE STREQUAL "static")
target_compile_definitions(fbgemm_generic PRIVATE ASMJIT_STATIC)
target_compile_definitions(fbgemm_avx2 PRIVATE ASMJIT_STATIC)
target_compile_definitions(fbgemm_avx512 PRIVATE ASMJIT_STATIC)
- foreach(flag_var
- CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
- CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
- if(${flag_var} MATCHES "/MD")
- string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
- endif(${flag_var} MATCHES "/MD")
- endforeach(flag_var)
endif()
target_compile_options(fbgemm_avx2 PRIVATE "/arch:AVX2")
target_compile_options(fbgemm_avx512 PRIVATE "/arch:AVX512")
@@ -189,7 +178,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
@@ -199,7 +198,6 @@ if(MSVC)
else(MSVC)
string(APPEND CMAKE_CXX_FLAGS " -Wall")
string(APPEND CMAKE_CXX_FLAGS " -Wextra")
- string(APPEND CMAKE_CXX_FLAGS " -Werror")
string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated-declarations")
string(APPEND CMAKE_CXX_FLAGS " -Wunknown-pragmas")
string(APPEND CMAKE_CXX_FLAGS " -Wimplicit-fallthrough")
@@ -247,7 +245,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
message(WARNING "CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
message(WARNING "==========")
-if(NOT TARGET asmjit)
+find_package(asmjit CONFIG REQUIRED) # target 'asmjit::asmjit'
+if(FALSE)
#Download asmjit from github if ASMJIT_SRC_DIR is not specified.
# Download asmjit from github if ASMJIT_SRC_DIR is not specified.
if(NOT DEFINED ASMJIT_SRC_DIR)
set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/third_party/asmjit"
@@ -218,7 +208,8 @@ if(NOT TARGET asmjit)
set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/external/asmjit"
@@ -280,7 +279,8 @@ if(NOT TARGET asmjit)
endif()
endif()
@ -60,8 +57,8 @@ index 58dcb9a..513a152 100644
+if(FALSE)
#Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified.
if(NOT DEFINED CPUINFO_SOURCE_DIR)
set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/third_party/cpuinfo"
@@ -239,49 +230,38 @@ endif()
set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/external/cpuinfo"
@@ -301,26 +301,26 @@ endif()
target_include_directories(fbgemm_generic BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>
@ -83,60 +80,47 @@ index 58dcb9a..513a152 100644
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>
- PRIVATE "${ASMJIT_SRC_DIR}/src"
- PRIVATE "${CPUINFO_SOURCE_DIR}/include")
-
-if(FBGEMM_LIBRARY_TYPE STREQUAL "default")
- add_library(fbgemm
- $<TARGET_OBJECTS:fbgemm_generic>
- $<TARGET_OBJECTS:fbgemm_avx2>
- $<TARGET_OBJECTS:fbgemm_avx512>)
-elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared")
- add_library(fbgemm SHARED
- $<TARGET_OBJECTS:fbgemm_generic>
- $<TARGET_OBJECTS:fbgemm_avx2>
- $<TARGET_OBJECTS:fbgemm_avx512>)
+)
+target_link_libraries(fbgemm_avx512 PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
+
+add_library(fbgemm
+ $<TARGET_OBJECTS:fbgemm_generic>
+ $<TARGET_OBJECTS:fbgemm_avx2>
+ $<TARGET_OBJECTS:fbgemm_avx512>)
+if(BUILD_SHARED_LIBS)
set_property(TARGET fbgemm_generic PROPERTY POSITION_INDEPENDENT_CODE ON)
target_include_directories(fbgemm_autovec BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>
- PRIVATE "${ASMJIT_SRC_DIR}/src"
- PRIVATE "${CPUINFO_SOURCE_DIR}/include")
+)
+target_link_libraries(fbgemm_autovec PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
if(FBGEMM_LIBRARY_TYPE STREQUAL "default")
add_library(fbgemm
@@ -338,6 +338,7 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared")
set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON)
set_target_properties(fbgemm PROPERTIES
CXX_VISIBILITY_PRESET hidden)
-elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static")
- add_library(fbgemm STATIC
- $<TARGET_OBJECTS:fbgemm_generic>
- $<TARGET_OBJECTS:fbgemm_avx2>
- $<TARGET_OBJECTS:fbgemm_avx512>)
+else()
#MSVC need to define FBGEMM_STATIC for fbgemm_generic also to
#avoid generating _dllimport functions.
target_compile_definitions(fbgemm_generic PRIVATE FBGEMM_STATIC)
target_compile_definitions(fbgemm_avx2 PRIVATE FBGEMM_STATIC)
target_compile_definitions(fbgemm_avx512 PRIVATE FBGEMM_STATIC)
target_compile_definitions(fbgemm PRIVATE FBGEMM_STATIC)
-else()
- message(FATAL_ERROR "Unsupported library type ${FBGEMM_LIBRARY_TYPE}")
endif()
if(USE_SANITIZER)
@@ -293,9 +273,7 @@ target_include_directories(fbgemm BEFORE
set_property(TARGET fbgemm_autovec PROPERTY POSITION_INDEPENDENT_CODE ON)
+ set_target_properties(fbgemm PROPERTIES CXX_VISIBILITY_PRESET hidden)
elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static")
add_library(fbgemm STATIC
$<TARGET_OBJECTS:fbgemm_generic>
@@ -364,15 +365,10 @@ target_include_directories(fbgemm BEFORE
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}>
PUBLIC $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>)
-target_link_libraries(fbgemm $<BUILD_INTERFACE:asmjit>
-target_link_libraries(fbgemm
- $<BUILD_INTERFACE:asmjit>
- $<BUILD_INTERFACE:cpuinfo>)
-add_dependencies(fbgemm asmjit cpuinfo)
-add_dependencies(fbgemm
- asmjit
- cpuinfo)
+target_link_libraries(fbgemm PUBLIC asmjit::asmjit cpuinfo::cpuinfo)
install(TARGETS fbgemm EXPORT fbgemmLibraryConfig
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -308,7 +286,7 @@ install(FILES ${FBGEMM_PUBLIC_HEADERS}
install(EXPORT fbgemmLibraryConfig DESTINATION share/cmake/fbgemm
if(OpenMP_FOUND)
- target_link_libraries(fbgemm OpenMP::OpenMP_CXX)
+ target_link_libraries(fbgemm PUBLIC OpenMP::OpenMP_CXX)
endif()
install(
@@ -391,7 +387,7 @@ install(
DESTINATION share/cmake/fbgemm
FILE fbgemmLibraryConfig.cmake)
-if(MSVC)

View File

@ -4,8 +4,8 @@ vcpkg_find_acquire_program(PYTHON3)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pytorch/fbgemm
REF 64833b5185893cbc71ea80c9b01443f762b5cba4
SHA512 f256177f22d3a4abd9c861bafd96e12df33e7604416c26ac06c9e480fd5f1e0b4149132b3216790704ebf73d47a7277235f058d58f0ecafa8de23360022f202d
REF 73a64e75ff31be7ece6f68929ee5682b0bf9eb10
SHA512 2757d986a977d14bd32d482452627b55aae216f77a262b2b1b88a643a2977c6c27c5a99ee91b7a7bdbb66248239ecc1a57d1953251049d787317b6355369af26
PATCHES
fix-cmakelists.patch
)

View File

@ -1,7 +1,6 @@
{
"name": "fbgemm",
"version": "0.4.1",
"port-version": 1,
"version": "1.0.0",
"description": "FB (Facebook) + GEMM (General Matrix-Matrix Multiplication)",
"homepage": "https://code.fb.com/ml-applications/fbgemm/",
"license": "BSD-3-Clause",

View File

@ -291,8 +291,6 @@ elfio:arm-neon-android=fail
elfio:arm64-android=fail
elfio:x64-android=fail
faker-cxx:x64-linux=fail # requires gcc13 or later
# clang rejects variable length arrays
fbgemm:x64-android=fail
# variable length arrays in C++ are a Clang extension
fbbgemmerror:arm-neon-android=fail
fbbgemmerror:arm64-android=fail

View File

@ -2845,8 +2845,8 @@
"port-version": 0
},
"fbgemm": {
"baseline": "0.4.1",
"port-version": 1
"baseline": "1.0.0",
"port-version": 0
},
"fbthrift": {
"baseline": "2025.05.19.00",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e055c95b9158e871ada9e49d4dfc92c618f995f2",
"version": "1.0.0",
"port-version": 0
},
{
"git-tree": "27b4707b88bb2ed527d372438c406d1a97323229",
"version": "0.4.1",