From ebf54fb1e8a601245841c342c721084988a5b613 Mon Sep 17 00:00:00 2001 From: Michael Cho Date: Mon, 9 Sep 2024 13:56:48 -0400 Subject: [PATCH] pytorch 2.4.1 --- Formula/p/pytorch.rb | 99 ++++++------------- pypi_formula_mappings.json | 5 + .../runtime_cpu_detection_allowlist.json | 1 + 3 files changed, 36 insertions(+), 69 deletions(-) diff --git a/Formula/p/pytorch.rb b/Formula/p/pytorch.rb index bd4ad9bcc096..e7c7fa86adcd 100644 --- a/Formula/p/pytorch.rb +++ b/Formula/p/pytorch.rb @@ -3,10 +3,9 @@ class Pytorch < Formula desc "Tensors and dynamic neural networks" homepage "https://pytorch.org/" - url "https://github.com/pytorch/pytorch/releases/download/v2.2.0/pytorch-v2.2.0.tar.gz" - sha256 "e12d18c3dbb12d7ae2f61f5ab9a21023e3dd179d67ed87279ef96600b9ac08c5" + url "https://github.com/pytorch/pytorch/releases/download/v2.4.1/pytorch-v2.4.1.tar.gz" + sha256 "39666a43c0c10f5fd46c1a7ca95dc74d3bc39de2678b70066481cbf02e58384f" license "BSD-3-Clause" - revision 10 livecheck do url :stable @@ -42,18 +41,18 @@ class Pytorch < Formula end resource "filelock" do - url "https://files.pythonhosted.org/packages/70/70/41905c80dcfe71b22fb06827b8eae65781783d4a14194bce79d16a013263/filelock-3.13.1.tar.gz" - sha256 "521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e" + url "https://files.pythonhosted.org/packages/9d/db/3ef5bb276dae18d6ec2124224403d1d67bccdbefc17af4cc8f553e341ab1/filelock-3.16.1.tar.gz" + sha256 "c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435" end resource "fsspec" do - url "https://files.pythonhosted.org/packages/28/d3/c2e0403c735548abf991bba3f45ba39194dff4569f76a99fbe77078ba7c5/fsspec-2024.2.0.tar.gz" - sha256 "b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84" + url "https://files.pythonhosted.org/packages/62/7c/12b0943011daaaa9c35c2a2e22e5eb929ac90002f08f1259d69aedad84de/fsspec-2024.9.0.tar.gz" + sha256 "4b0afb90c2f21832df142f292649035d80b421f60a9e1c027802e5a0da2b04e8" end resource "jinja2" do - url "https://files.pythonhosted.org/packages/b2/5e/3a21abf3cd467d7876045335e681d276ac32492febe6d98ad89562d1a7e1/Jinja2-3.1.3.tar.gz" - sha256 "ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90" + url "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz" + sha256 "4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369" end resource "markupsafe" do @@ -67,8 +66,8 @@ class Pytorch < Formula end resource "networkx" do - url "https://files.pythonhosted.org/packages/c4/80/a84676339aaae2f1cfdf9f418701dd634aef9cc76f708ef55c36ff39c3ca/networkx-3.2.1.tar.gz" - sha256 "9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6" + url "https://files.pythonhosted.org/packages/04/e6/b164f94c869d6b2c605b5128b7b0cfe912795a87fc90e78533920001f3ec/networkx-3.3.tar.gz" + sha256 "0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9" end resource "opt-einsum" do @@ -83,47 +82,40 @@ class Pytorch < Formula end resource "pyyaml" do - url "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz" - sha256 "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43" + url "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz" + sha256 "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" end resource "setuptools" do - url "https://files.pythonhosted.org/packages/c8/1f/e026746e5885a83e1af99002ae63650b7c577af5c424d4c27edcf729ab44/setuptools-69.1.1.tar.gz" - sha256 "5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8" + url "https://files.pythonhosted.org/packages/27/b8/f21073fde99492b33ca357876430822e4800cdf522011f18041351dfa74b/setuptools-75.1.0.tar.gz" + sha256 "d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538" end resource "sympy" do - url "https://files.pythonhosted.org/packages/e5/57/3485a1a3dff51bfd691962768b14310dae452431754bfc091250be50dd29/sympy-1.12.tar.gz" - sha256 "ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8" + url "https://files.pythonhosted.org/packages/11/8a/5a7fd6284fa8caac23a26c9ddf9c30485a48169344b4bd3b0f02fef1890f/sympy-1.13.3.tar.gz" + sha256 "b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9" end resource "typing-extensions" do - url "https://files.pythonhosted.org/packages/0c/1d/eb26f5e75100d531d7399ae800814b069bc2ed2a7410834d57374d010d96/typing_extensions-4.9.0.tar.gz" - sha256 "23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783" + url "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz" + sha256 "1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" end - # Support numpy 2.0: https://github.com/pytorch/pytorch/pull/121880 - patch do - url "https://github.com/pytorch/pytorch/commit/38d9bb5abcc31ba97927a5399b88afe2cf60bf64.patch?full_index=1" - sha256 "c9bf84d154e5f3f9b67a68d25765f32a08b9deb3127254971ed6351231eba228" - end - - # Backport usage of SLEEF_CONST from upstream commit - # Ref: https://github.com/pytorch/pytorch/commit/2b060983809e5fe8706acd085fff67b6a27bfb5f - patch :DATA - def install python3 = "python3.12" + ENV.runtime_cpu_detection ENV["ATEN_NO_TEST"] = "ON" ENV["BLAS"] = "OpenBLAS" ENV["BUILD_CUSTOM_PROTOBUF"] = "OFF" ENV["BUILD_PYTHON"] = "ON" ENV["BUILD_TEST"] = "OFF" ENV["PYTHON_EXECUTABLE"] = which(python3) + ENV["PYTORCH_BUILD_VERSION"] = version.to_s + ENV["PYTORCH_BUILD_NUMBER"] = "1" + ENV["USE_CCACHE"] = "OFF" ENV["USE_CUDA"] = "OFF" ENV["USE_DISTRIBUTED"] = "ON" - ENV["USE_METAL"] = "OFF" ENV["USE_MKLDNN"] = "OFF" ENV["USE_NNPACK"] = "OFF" ENV["USE_OPENMP"] = "ON" @@ -134,7 +126,7 @@ def install # Work around superenv removing `-Werror=` but leaving `-Wno-error=` breaking flag detection if ENV.compiler.to_s.start_with?("gcc") - inreplace "CMakeLists.txt", 'append_cxx_flag_if_supported("-Wno-error=inconsistent-missing-', "# \\0" + inreplace "CMakeLists.txt", /^\s*append_cxx_flag_if_supported\(\s*"-Wno-error=inconsistent-missing-[^)]*\)/, "" end # Avoid references to Homebrew shims @@ -145,7 +137,7 @@ def install venv.pip_install_and_link(buildpath, build_isolation: false) # Expose C++ API - torch = libexec/Language::Python.site_packages(python3)/"torch" + torch = venv.site_packages/"torch" include.install_symlink (torch/"include").children lib.install_symlink (torch/"lib").children (share/"cmake").install_symlink (torch/"share/cmake").children @@ -174,43 +166,12 @@ def install assert isinstance(t, torch.Tensor), "not a tensor" assert torch.distributed.is_available(), "torch.distributed is unavailable" EOS + return unless OS.mac? - if OS.mac? - # test that we have the MPS backend - system libexec/"bin/python", "-c", <<~EOS - import torch - assert torch.backends.mps.is_built(), "MPS backend is not built" - EOS - end + # test that we have the MPS backend + system libexec/"bin/python", "-c", <<~EOS + import torch + assert torch.backends.mps.is_built(), "MPS backend is not built" + EOS end end - -__END__ -diff --git a/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h b/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h -index 3e26213d6d26609b2cda7bde2d026fc92c626db2..edda0210746530bb60765939e90899083f8be595 100644 ---- a/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h -+++ b/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h -@@ -265,7 +266,8 @@ static_assert( - } - return b; - } -- Vectorized map(const __m256 (*const vop)(__m256)) const { -+ -+ Vectorized map(SLEEF_CONST __m256 (*vop)(__m256)) const { - __m256 lo, hi; - cvt_to_fp32(values, lo, hi); - const auto o1 = vop(lo); -diff --git a/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h b/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h -index f9fc92d52bfe0c8ea594384beecf4da47961faa0..6513455283e2be3e588fd15131c5d48a17e107bb 100644 ---- a/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h -+++ b/aten/src/ATen/cpu/vec/vec512/vec512_bfloat16.h -@@ -362,7 +363,8 @@ static_assert( - } - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wignored-qualifiers" -- Vectorized map(const __m512 (*const vop)(__m512)) const { -+ -+ Vectorized map(SLEEF_CONST __m512 (*vop)(__m512)) const { - __m512 lo, hi; - cvt_to_fp32(values, lo, hi); - const auto o1 = vop(lo); diff --git a/pypi_formula_mappings.json b/pypi_formula_mappings.json index c9ed1bb351e7..aa35f8d4e6fa 100644 --- a/pypi_formula_mappings.json +++ b/pypi_formula_mappings.json @@ -678,6 +678,11 @@ "pythran": { "exclude_packages": ["numpy"] }, + "pytorch": { + "package_name": "torch[opt-einsum]", + "extra_packages": ["pyyaml"], + "exclude_packages": ["numpy"] + }, "raven": { "exclude_packages": ["certifi"] }, diff --git a/style_exceptions/runtime_cpu_detection_allowlist.json b/style_exceptions/runtime_cpu_detection_allowlist.json index f2038277e225..196b865b1c37 100644 --- a/style_exceptions/runtime_cpu_detection_allowlist.json +++ b/style_exceptions/runtime_cpu_detection_allowlist.json @@ -11,6 +11,7 @@ "openblas", "opencv", "open-mpi", + "pytorch", "qt", "spidermonkey", "vc",