diff options
author | volth <volth@volth.com> | 2019-05-05 23:40:20 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-11-27 13:28:18 +0000 |
commit | 56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600 (patch) | |
tree | 8cdbfcec6eee3e6c28d990a1071241c25e126e26 /nixpkgs | |
parent | 84875aacac4550333888ac4a5624c08157c3a673 (diff) | |
download | nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.gz nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.bz2 nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.lz nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.xz nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.zst nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.zip |
platform.gcc.arch: support for AMD CPUs
(cherry picked from commit 463db72e631e0bd4a835796324eb1981071c6ee4)
Diffstat (limited to 'nixpkgs')
11 files changed, 62 insertions, 18 deletions
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix index 6ee287e287bc..3a770cf98e6d 100644 --- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix +++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix @@ -64,18 +64,24 @@ let # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu isGccArchSupported = arch: if isGNU then - { skylake = versionAtLeast ccVersion "6.0"; + { # Intel + skylake = versionAtLeast ccVersion "6.0"; skylake-avx512 = versionAtLeast ccVersion "6.0"; cannonlake = versionAtLeast ccVersion "8.0"; icelake-client = versionAtLeast ccVersion "8.0"; icelake-server = versionAtLeast ccVersion "8.0"; knm = versionAtLeast ccVersion "8.0"; + # AMD + znver1 = versionAtLeast ccVersion "6.0"; }.${arch} or true else if isClang then - { cannonlake = versionAtLeast ccVersion "5.0"; + { # Intel + cannonlake = versionAtLeast ccVersion "5.0"; icelake-client = versionAtLeast ccVersion "7.0"; icelake-server = versionAtLeast ccVersion "7.0"; knm = versionAtLeast ccVersion "7.0"; + # AMD + znver1 = versionAtLeast ccVersion "4.0"; }.${arch} or true else false; diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix index 8e6b434281eb..6df0d64bbeb3 100644 --- a/nixpkgs/pkgs/development/interpreters/j/default.nix +++ b/nixpkgs/pkgs/development/interpreters/j/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, readline, libedit, bc -, avxSupport ? false +, avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] }: stdenv.mkDerivation rec { diff --git a/nixpkgs/pkgs/development/libraries/dlib/default.nix b/nixpkgs/pkgs/development/libraries/dlib/default.nix index a7d68d62f2ae..359e8a15f020 100644 --- a/nixpkgs/pkgs/development/libraries/dlib/default.nix +++ b/nixpkgs/pkgs/development/libraries/dlib/default.nix @@ -2,7 +2,7 @@ , guiSupport ? false, libX11 # see http://dlib.net/compile.html -, avxSupport ? true +, avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] , cudaSupport ? true }: @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { rm -rf dlib/external ''; - cmakeFlags = [ + cmakeFlags = [ "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}" "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ]; diff --git a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix index bc84039a9aa2..226d9c5e7445 100644 --- a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix +++ b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix @@ -35,13 +35,22 @@ stdenv.mkDerivation rec { # disable SIMD instructions (which are enabled *when available* by default) # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284) default = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ]; + # Intel westmere = [ "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ]; sandybridge = [ "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ]; ivybridge = [ "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ]; - haswell = [ "--disable-fma4" ]; - broadwell = [ "--disable-fma4" ]; - skylake = [ "--disable-fma4" ]; - skylake-avx512 = [ "--disable-fma4" ]; + haswell = [ "--disable-fma4" ]; + broadwell = [ "--disable-fma4" ]; + skylake = [ "--disable-fma4" ]; + skylake-avx512 = [ "--disable-fma4" ]; + # AMD + btver1 = [ "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ]; + btver2 = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + bdver1 = [ "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" ]; + bdver2 = [ "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" ]; + bdver3 = [ "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" ]; + bdver4 = [ ]; + znver1 = [ "--disable-fma4" ]; }.${stdenv.hostPlatform.platform.gcc.arch or "default"}; doCheck = true; diff --git a/nixpkgs/pkgs/development/libraries/givaro/default.nix b/nixpkgs/pkgs/development/libraries/givaro/default.nix index fdaf518c6114..b88d63c3d7e4 100644 --- a/nixpkgs/pkgs/development/libraries/givaro/default.nix +++ b/nixpkgs/pkgs/development/libraries/givaro/default.nix @@ -20,6 +20,7 @@ stdenv.mkDerivation rec { ] ++ stdenv.lib.optionals stdenv.isx86_64 { # disable SIMD instructions (which are enabled *when available* by default) default = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + # Intel westmere = [ "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; sandybridge = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; ivybridge = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; @@ -27,6 +28,14 @@ stdenv.mkDerivation rec { broadwell = [ "--disable-fma4" ]; skylake = [ "--disable-fma4" ]; skylake-avx512 = [ "--disable-fma4" ]; + # AMD + btver1 = [ "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + btver2 = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + bdver1 = [ "--disable-avx2" ]; + bdver2 = [ "--disable-avx2" ]; + bdver3 = [ "--disable-avx2" ]; + bdver4 = [ ]; + znver1 = [ "--disable-fma4" ]; }.${stdenv.hostPlatform.platform.gcc.arch or "default"}; # On darwin, tests are linked to dylib in the nix store, so we need to make diff --git a/nixpkgs/pkgs/development/libraries/linbox/default.nix b/nixpkgs/pkgs/development/libraries/linbox/default.nix index 2217996acdbc..0612a5be4efd 100644 --- a/nixpkgs/pkgs/development/libraries/linbox/default.nix +++ b/nixpkgs/pkgs/development/libraries/linbox/default.nix @@ -42,6 +42,7 @@ stdenv.mkDerivation rec { ] ++ stdenv.lib.optionals stdenv.isx86_64 { # disable SIMD instructions (which are enabled *when available* by default) default = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + # Intel westmere = [ "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; sandybridge = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; ivybridge = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; @@ -49,6 +50,14 @@ stdenv.mkDerivation rec { broadwell = [ "--disable-fma4" ]; skylake = [ "--disable-fma4" ]; skylake-avx512 = [ "--disable-fma4" ]; + # AMD + btver1 = [ "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + btver2 = [ "--disable-avx2" "--disable-fma" "--disable-fma4" ]; + bdver1 = [ "--disable-avx2" ]; + bdver2 = [ "--disable-avx2" ]; + bdver3 = [ "--disable-avx2" ]; + bdver4 = [ ]; + znver1 = [ "--disable-fma4" ]; }.${stdenv.hostPlatform.platform.gcc.arch or "default"} ++ stdenv.lib.optionals withSage [ "--enable-sage" diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix index a4c12793abb3..33054dd403f9 100644 --- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -259,6 +259,7 @@ stdenv.mkDerivation { then [ "-no-sse2" ] else lib.optionals (compareVersion "5.9.0" >= 0) { default = [ "-sse2" "-no-sse3" "-no-ssse3" "-no-sse4.1" "-no-sse4.2" "-no-avx" "-no-avx2" ]; + # Intel westmere = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-no-avx" "-no-avx2" ]; sandybridge = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; ivybridge = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; @@ -266,6 +267,14 @@ stdenv.mkDerivation { broadwell = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-avx2" ]; skylake = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-avx2" ]; skylake-avx512 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-avx2" ]; + # AMD + btver1 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-no-avx" "-no-avx2" ]; + btver2 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; + bdver1 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; + bdver2 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; + bdver3 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-no-avx2" ]; + bdver4 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-avx2" ]; + znver1 = [ "-sse2" "-sse3" "-ssse3" "-sse4.1" "-sse4.2" "-avx" "-avx2" ]; }.${stdenv.hostPlatform.platform.gcc.arch or "default"} ) ++ [ diff --git a/nixpkgs/pkgs/development/python-modules/dlib/default.nix b/nixpkgs/pkgs/development/python-modules/dlib/default.nix index a57d83075513..33cb72dca408 100644 --- a/nixpkgs/pkgs/development/python-modules/dlib/default.nix +++ b/nixpkgs/pkgs/development/python-modules/dlib/default.nix @@ -1,4 +1,6 @@ -{ buildPythonPackage, dlib, python, pytest, more-itertools, avxSupport ? true, lib }: +{ buildPythonPackage, lib, dlib, python, pytest, more-itertools, + avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] +}: buildPythonPackage { inherit (dlib) name src nativeBuildInputs buildInputs meta; diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix index 4dc5c57070d1..1633a32bee26 100644 --- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix +++ b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix @@ -23,9 +23,9 @@ , xlaSupport ? cudaSupport # Default from ./configure script , cudaCapabilities ? [ "3.5" "5.2" ] -, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"] -, avx2Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512"] -, fmaSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512"] +, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] +, avx2Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512" "bdver4" "znver1"] +, fmaSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512" "bdver2" "bdver3" "bdver4" "znver1"] # Darwin deps , Foundation, Security }: diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix index 4dd378d1410b..8f30ecbcc984 100644 --- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix +++ b/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix @@ -23,9 +23,9 @@ , xlaSupport ? cudaSupport # Default from ./configure script , cudaCapabilities ? [ "3.5" "5.2" ] -, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"] -, avx2Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512"] -, fmaSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512"] +, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] +, avx2Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512" "bdver4" "znver1"] +, fmaSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "haswell" "broadwell" "skylake" "skylake-avx512" "bdver2" "bdver3" "bdver4" "znver1"] # Darwin deps , Foundation, Security }: diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix index b686ea4d04f2..14fcde4367c8 100644 --- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix +++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchFromGitHub , boost, zlib, openssl , upnpSupport ? true, miniupnpc ? null -, aesniSupport ? false -, avxSupport ? false +, aesniSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] +, avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"] }: assert upnpSupport -> miniupnpc != null; |