Skip to content

Commit

Permalink
Merge pull request #184012 from Homebrew/pytorch-2.4.1
Browse files Browse the repository at this point in the history
pytorch 2.4.1
  • Loading branch information
BrewTestBot authored Sep 27, 2024
2 parents 334a167 + 8d86c93 commit 83a63f8
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 106 deletions.
113 changes: 38 additions & 75 deletions Formula/p/pytorch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,22 @@ 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 11

livecheck do
url :stable
regex(/^v?(\d+(?:\.\d+)+)$/i)
end

bottle do
sha256 cellar: :any, arm64_sequoia: "aa2d818f038b8ad23fd6492dd4267c7ca1635352c15d4297ad0b609eea053230"
sha256 cellar: :any, arm64_sonoma: "99049d0a87e72b72e03c953c306c3680617d63e45e33b3710f186624cf4fad98"
sha256 cellar: :any, arm64_ventura: "366e9e3d1f95b9c3a523abe64d1afa6234a6308f39cff869d39d4fb639a2340d"
sha256 cellar: :any, sonoma: "8302939a1d0be91aae51dd7bbd60d27069717c3ec18b0f58b679d564d73d85ed"
sha256 cellar: :any, ventura: "7cd0d78ad67980bebd1ebf806f0a470471a0814ace5e50a0dd245b1befed9bcd"
sha256 cellar: :any_skip_relocation, x86_64_linux: "675cac447078658c86fd04b96c2df51f20758d00ef2a372f60e9e18331dc1417"
sha256 cellar: :any, arm64_sequoia: "956e37ef4820981d09bb9e9c6b084091627c5d7166fb253bcd57f67120657b49"
sha256 cellar: :any, arm64_sonoma: "2333261f5c57c67cff39c3d05b742db5b6c2c43e58a91125d6a07fe6f981e292"
sha256 cellar: :any, arm64_ventura: "7c11ebe60fee1ac9366182218da7ff1c9044e3fb5191e922263f3492cb34c39b"
sha256 cellar: :any, sonoma: "9d2e872006b624945f7d74c08cb91f2bbe2673247b1b391e95f811ebe5f9537f"
sha256 cellar: :any, ventura: "1f05e718f8e0bff8b3bdbeb984df8d4fb67c967c15f420eebd6c739297453750"
sha256 cellar: :any_skip_relocation, x86_64_linux: "bf6d94d04895cefd066c55f96ae36917ff626fc5ba798631cdc20b9ab5770f8b"
end

depends_on "cmake" => :build
Expand All @@ -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
Expand All @@ -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
Expand All @@ -83,47 +82,42 @@ 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"

# Avoid building AVX512 code
inreplace "cmake/Modules/FindAVX.cmake", /^CHECK_SSE\(CXX "AVX512"/, "#\\0"

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"
Expand All @@ -134,7 +128,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
Expand All @@ -145,7 +139,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
Expand Down Expand Up @@ -174,43 +168,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<T> map(const __m256 (*const vop)(__m256)) const {
+
+ Vectorized<T> map(SLEEF_CONST __m256 (*vop)(__m256)) const {
__m256 lo, hi;
cvt_to_fp32<T>(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<T> map(const __m512 (*const vop)(__m512)) const {
+
+ Vectorized<T> map(SLEEF_CONST __m512 (*vop)(__m512)) const {
__m512 lo, hi;
cvt_to_fp32<T>(values, lo, hi);
const auto o1 = vop(lo);
42 changes: 11 additions & 31 deletions Formula/t/torchvision.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,22 @@ class Torchvision < Formula

desc "Datasets, transforms, and models for computer vision"
homepage "https://github.com/pytorch/vision"
url "https://github.com/pytorch/vision/archive/refs/tags/v0.17.0.tar.gz"
sha256 "55e395d5c7d9bf7658c82ac633cac2224aa168e1bfe8bb5b2b2a296c792a3500"
url "https://github.com/pytorch/vision/archive/refs/tags/v0.19.1.tar.gz"
sha256 "083e75c467285595ec3eb3c7aa8493c19e53d7eb42f13046fb56a07c8897e5a8"
license "BSD-3-Clause"
revision 11

livecheck do
url :stable
regex(/^v?(\d+(?:\.\d+)+)$/i)
end

bottle do
sha256 cellar: :any, arm64_sequoia: "812c446f668fa6467a3fbbaed405f16638d51467293c10aa60c75ecfe1fc9873"
sha256 cellar: :any, arm64_sonoma: "c456f270651c12b17afca72e3ebe8940a413cd5739172f5db10b8eced17374a6"
sha256 cellar: :any, arm64_ventura: "610867f01b53419678fe03a7d6650c64c353ee1d1ea18f35b75944571e10991e"
sha256 cellar: :any, sonoma: "f352835f242ea258ae4f39db723fa2e8f686696380954d7409a04b29874a3263"
sha256 cellar: :any, ventura: "1d7a5003c763489d6d5e93a841b08aeb1d8ebbf1a99825768025341754c817a0"
sha256 cellar: :any_skip_relocation, x86_64_linux: "f1a683babdd1acd5a495481b49d003c4b9fcc7705dbfb69eb1711b52a6e69d1a"
sha256 cellar: :any, arm64_sequoia: "5a1b6d729c2e3d039e3ccea262764d442bbd5993815850e762790a52a81ad2a8"
sha256 cellar: :any, arm64_sonoma: "9180e25c850189a8f5bd51512758bfb671e46efadf5ff7609dd34d553060ef6f"
sha256 cellar: :any, arm64_ventura: "69665bfdbc14bc07b6b344a4919c78c6bf89c401b52ffdffd71c441938953312"
sha256 cellar: :any, sonoma: "272f58db99105bceca7e33ebf135f71fbcc6e3900082600d74ee5f12f37397a7"
sha256 cellar: :any, ventura: "db376520a2dc03ac1a2ad7cf742126ec5e138572109f4997d1e9be15365fc907"
sha256 cellar: :any_skip_relocation, x86_64_linux: "6f5de0ae1b6c65a6c14b8b8546e4d4728c047efd0bcc8ca47ff5c5a84b32c94d"
end

depends_on "cmake" => :build
Expand All @@ -38,26 +37,6 @@ class Torchvision < Formula
depends_on "libomp"
end

resource "charset-normalizer" do
url "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz"
sha256 "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
end

resource "idna" do
url "https://files.pythonhosted.org/packages/e8/ac/e349c5e6d4543326c6883ee9491e3921e0d07b55fdf3cce184b40d63e72a/idna-3.8.tar.gz"
sha256 "d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"
end

resource "requests" do
url "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz"
sha256 "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"
end

resource "urllib3" do
url "https://files.pythonhosted.org/packages/43/6d/fa469ae21497ddc8bc93e5877702dca7cb8f911e337aca7452b5724f1bb6/urllib3-2.2.2.tar.gz"
sha256 "dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"
end

def install
system "cmake", "-S", ".", "-B", "build", *std_cmake_args
system "cmake", "--build", "build"
Expand All @@ -74,9 +53,10 @@ def install

# We depend on pytorch, but that's a separate formula, so install a `.pth` file to link them.
# This needs to happen _before_ we try to install torchvision.
# NOTE: This is an exception to our usual policy as building `pytorch` is complicated
site_packages = Language::Python.site_packages(python3)
pytorch = Formula["pytorch"].opt_libexec
(libexec/site_packages/"homebrew-pytorch.pth").write pytorch/site_packages
pth_contents = "import site; site.addsitedir('#{Formula["pytorch"].opt_libexec/site_packages}')\n"
(venv.site_packages/"homebrew-pytorch.pth").write pth_contents

venv.pip_install_and_link(buildpath, build_isolation: false)

Expand Down
5 changes: 5 additions & 0 deletions pypi_formula_mappings.json
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,11 @@
"pythran": {
"exclude_packages": ["numpy"]
},
"pytorch": {
"package_name": "torch[opt-einsum]",
"extra_packages": ["pyyaml"],
"exclude_packages": ["numpy"]
},
"raven": {
"exclude_packages": ["certifi"]
},
Expand Down

0 comments on commit 83a63f8

Please sign in to comment.