Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
191 changes: 191 additions & 0 deletions easybuild/easyconfigs/p/PyTorch/PyTorch-2.3.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
name = 'PyTorch'
version = '2.3.0'

homepage = 'https://pytorch.org/'
description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration.
PyTorch is a deep learning framework that puts Python first."""

toolchain = {'name': 'foss', 'version': '2023b'}

source_urls = [GITHUB_RELEASE]
sources = ['%(namelower)s-v%(version)s.tar.gz']
patches = [
'PyTorch-1.7.0_disable-dev-shm-test.patch',
'PyTorch-1.12.1_add-hypothesis-suppression.patch',
'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch',
'PyTorch-1.12.1_fix-TestTorch.test_to.patch',
'PyTorch-1.12.1_skip-test_round_robin.patch',
'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch',
'PyTorch-1.13.1_fix-protobuf-dependency.patch',
'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch',
'PyTorch-1.13.1_skip-failing-singular-grad-test.patch',
'PyTorch-1.13.1_skip-tests-without-fbgemm.patch',
'PyTorch-2.0.1_avoid-test_quantization-failures.patch',
'PyTorch-2.0.1_fix-skip-decorators.patch',
'PyTorch-2.0.1_fix-vsx-loadu.patch',
'PyTorch-2.0.1_skip-failing-gradtest.patch',
'PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch',
'PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch',
'PyTorch-2.1.0_fix-vsx-vector-shift-functions.patch',
'PyTorch-2.1.0_increase-tolerance-functorch-test_vmapvjpvjp.patch',
'PyTorch-2.1.0_remove-test-requiring-online-access.patch',
'PyTorch-2.1.0_skip-diff-test-on-ppc.patch',
'PyTorch-2.1.0_skip-dynamo-test_predispatch.patch',
'PyTorch-2.1.0_skip-test_jvp_linalg_det_singular.patch',
'PyTorch-2.1.2_skip-cpu_repro-test-without-vectorization.patch',
'PyTorch-2.1.2_workaround_dynamo_failure_without_nnpack.patch',
'PyTorch-2.3.0_disable_test_linear_package_if_no_half_types_are_available.patch',
'PyTorch-2.3.0_disable_DataType_dependent_test_if_tensorboard_is_not_available.patch',
'PyTorch-2.3.0_skip-test_init_from_local_shards.patch',
'PyTorch-2.3.0_no-cuda-stubs-rpath.patch',
'PyTorch-2.3.0_disable-gcc12-warning.patch',
'PyTorch-2.3.0_fix-test_extension_backend-without-vectorization.patch',
'PyTorch-2.3.0_disable_tests_which_need_network_download.patch',
'PyTorch-2.3.0_avoid_caffe2_test_cpp_jit.patch',
'PyTorch-2.3.0_fix_missing_masked_load_for_int_type.patch',
'PyTorch-2.3.0_skip_test_var_mean_differentiable.patch',
'PyTorch-2.3.0_skip_test_sdpa_nn_functional_scaled_dot_product_attention_cpu.patch',
'PyTorch-2.3.0_fix-mkldnn-avx512-f32-bias.patch',
]
checksums = [
{'pytorch-v2.3.0.tar.gz': '69579513b26261bbab32e13b7efc99ad287fcf3103087f2d4fdf1adacd25316f'},
{'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'},
{'PyTorch-1.12.1_add-hypothesis-suppression.patch':
'e71ffb94ebe69f580fa70e0de84017058325fdff944866d6bd03463626edc32c'},
{'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch':
'1efc9850c431d702e9117d4766277d3f88c5c8b3870997c9974971bce7f2ab83'},
{'PyTorch-1.12.1_fix-TestTorch.test_to.patch': '75f27987c3f25c501e719bd2b1c70a029ae0ee28514a97fe447516aee02b1535'},
{'PyTorch-1.12.1_skip-test_round_robin.patch': '63d4849b78605aa088fdff695637d9473ea60dee603a3ff7f788690d70c55349'},
{'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch':
'5c7be91a6096083a0b1315efe0001537499c600f1f569953c6a2c7f4cc1d0910'},
{'PyTorch-1.13.1_fix-protobuf-dependency.patch':
'8bd755a0cab7233a243bc65ca57c9630dfccdc9bf8c9792f0de4e07a644fcb00'},
{'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch':
'bdde0f2105215c95a54de64ec4b1a4520528510663174fef6d5b900eb1db3937'},
{'PyTorch-1.13.1_skip-failing-singular-grad-test.patch':
'72688a57b2bb617665ad1a1d5e362c5111ae912c10936bb38a089c0204729f48'},
{'PyTorch-1.13.1_skip-tests-without-fbgemm.patch':
'481e595f673baf8ae58b41697a6792b83048b0264aa79b422f48cd8c22948bb7'},
{'PyTorch-2.0.1_avoid-test_quantization-failures.patch':
'02e3f47e4ed1d7d6077e26f1ae50073dc2b20426269930b505f4aefe5d2f33cd'},
{'PyTorch-2.0.1_fix-skip-decorators.patch': '2039012cef45446065e1a2097839fe20bb29fe3c1dcc926c3695ebf29832e920'},
{'PyTorch-2.0.1_fix-vsx-loadu.patch': 'a0ffa61da2d47c6acd09aaf6d4791e527d8919a6f4f1aa7ed38454cdcadb1f72'},
{'PyTorch-2.0.1_skip-failing-gradtest.patch': '8030bdec6ba49b057ab232d19a7f1a5e542e47e2ec340653a246ec9ed59f8bc1'},
{'PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch':
'7047862abc1abaff62954da59700f36d4f39fcf83167a638183b1b7f8fec78ae'},
{'PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch':
'166c134573a95230e39b9ea09ece3ad8072f39d370c9a88fb2a1e24f6aaac2b5'},
{'PyTorch-2.1.0_fix-vsx-vector-shift-functions.patch':
'3793b4b878be1abe7791efcbd534774b87862cfe7dc4774ca8729b6cabb39e7e'},
{'PyTorch-2.1.0_increase-tolerance-functorch-test_vmapvjpvjp.patch':
'aef38adf1210d0c5455e91d7c7a9d9e5caad3ae568301e0ba9fc204309438e7b'},
{'PyTorch-2.1.0_remove-test-requiring-online-access.patch':
'35184b8c5a1b10f79e511cc25db3b8a5585a5d58b5d1aa25dd3d250200b14fd7'},
{'PyTorch-2.1.0_skip-diff-test-on-ppc.patch': '394157dbe565ffcbc1821cd63d05930957412156cc01e949ef3d3524176a1dda'},
{'PyTorch-2.1.0_skip-dynamo-test_predispatch.patch':
'6298daf9ddaa8542850eee9ea005f28594ab65b1f87af43d8aeca1579a8c4354'},
{'PyTorch-2.1.0_skip-test_jvp_linalg_det_singular.patch':
'5229ca88a71db7667a90ddc0b809b2c817698bd6e9c5aaabd73d3173cf9b99fe'},
{'PyTorch-2.1.2_skip-cpu_repro-test-without-vectorization.patch':
'7ace835af60c58d9e0754a34c19d4b9a0c3a531f19e5d0eba8e2e49206eaa7eb'},
{'PyTorch-2.1.2_workaround_dynamo_failure_without_nnpack.patch':
'fb96eefabf394617bbb3fbd3a7a7c1aa5991b3836edc2e5d2a30e708bfe49ba1'},
{'PyTorch-2.3.0_disable_test_linear_package_if_no_half_types_are_available.patch':
'23416f2d9d5226695ec3fbea0671e3650c655c19deefd3f0f8ddab5afa50f485'},
{'PyTorch-2.3.0_disable_DataType_dependent_test_if_tensorboard_is_not_available.patch':
'0dcbdfde6752c3ff54c5376f521b4a742167669feb7f0f1d4e1d4d55f72b664f'},
{'PyTorch-2.3.0_skip-test_init_from_local_shards.patch':
'90ed9c2870f57ee6dc032d00873a37e2217a2b92a13035ded1c25ad5306455f2'},
{'PyTorch-2.3.0_no-cuda-stubs-rpath.patch':
'7ba26824b5def7379cff02ae821a080698e6affea0da45bc846e9ecb89939cb1'},
{'PyTorch-2.3.0_disable-gcc12-warning.patch':
'a8a624e1a2a5f4c82610173e50bd0f853e49bd5621b432f5aac689f9f6eb1514'},
{'PyTorch-2.3.0_fix-test_extension_backend-without-vectorization.patch':
'36aa2d5ba175be17f4e996f4fb2d544fe477d4a0bd0644cd59a85063779afc8e'},
{'PyTorch-2.3.0_disable_tests_which_need_network_download.patch':
'b7fd1a5135dfd4098cdc054182f7bf84a23ac98462a00477712182b5442da855'},
{'PyTorch-2.3.0_avoid_caffe2_test_cpp_jit.patch':
'041adcd91d994b8c2ab57d227f081cd57e572c157117b37171e1eb8eb576f8fc'},
{'PyTorch-2.3.0_fix_missing_masked_load_for_int_type.patch':
'aa6ff764f3f7bf84372a8a257fe1b4ae6dc4b9744ad35f0f9015f2696c62a41e'},
{'PyTorch-2.3.0_skip_test_var_mean_differentiable.patch':
'9703fd0f1fca8916f6d79d83e9a7efe8e3f717362a5fdaa8f5d9da90d0c75018'},
{'PyTorch-2.3.0_skip_test_sdpa_nn_functional_scaled_dot_product_attention_cpu.patch':
'7955f2655db3da18606574fdcbc5990be24098f49ad1db5e86ea756ea1cc506f'},
{'PyTorch-2.3.0_fix-mkldnn-avx512-f32-bias.patch':
'ee07d21c3ac7aeb0bd0e39507b18a417b9125284a529102929c4b5c6727c2976'},
]

osdependencies = [OS_PKG_IBVERBS_DEV]

builddependencies = [
('CMake', '3.27.6'),
('hypothesis', '6.90.0'),
# For tests
('pytest-flakefinder', '1.1.0'),
('pytest-rerunfailures', '14.0'),
('pytest-shard', '0.1.2'),
('tlparse', '0.3.5'),
('optree', '0.13.0'),
('unittest-xml-reporting', '3.1.0'),
]

dependencies = [
('Ninja', '1.11.1'), # Required for JIT compilation of C++ extensions
('Python', '3.11.5'),
('Python-bundle-PyPI', '2023.10'),
('protobuf', '25.3'),
('protobuf-python', '4.25.3'),
('pybind11', '2.11.1'),
('SciPy-bundle', '2023.11'),
('PyYAML', '6.0.1'),
('MPFR', '4.2.1'),
('GMP', '6.3.0'),
('numactl', '2.0.16'),
('FFmpeg', '6.0'),
('Pillow', '10.2.0'),
('expecttest', '0.2.1'),
('networkx', '3.2.1'),
('sympy', '1.12'),
('Z3', '4.13.0',),
]

use_pip = True
buildcmd = '%(python)s setup.py build' # Run the (long) build in the build step

excluded_tests = {
'': [
# This test seems to take too long on NVIDIA Ampere at least.
'distributed/test_distributed_spawn',
# Broken on CUDA 11.6/11.7: https://github.com/pytorch/pytorch/issues/75375
'distributions/test_constraints',
# no xdoctest
'doctests',
# failing on broadwell
# See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712
'test_native_mha',
# intermittent failures on various systems
# See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712
'distributed/rpc/test_tensorpipe_agent',
# This test is expected to fail when run in their CI, but won't in our case.
# It just checks for a "CI" env variable
'test_ci_sanity_check_fail',
# This fails consistently and is disabled upstream
# See https://github.com/pytorch/pytorch/issues/100152 and
# https://github.com/pytorch/pytorch/pull/124712
'test_cpp_extensions_open_device_registration',

]
}

local_test_opts = '--continue-through-error --pipe-logs --verbose %(excluded_tests)s'
runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py ' + local_test_opts

# Especially test_quantization has a few corner cases that are triggered by the random input values,
# those cannot be easily avoided, see https://github.com/pytorch/pytorch/issues/107030
# So allow a low number of tests to fail as the tests "usually" succeed
max_failed_tests = 6

tests = ['PyTorch-check-cpp-extension.py']

moduleclass = 'ai'
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
commit 9e09454cdefc14397c57b2435d3da0c0413dbb8e
Author: Ake Sandgren <ake.sandgren@hpc2n.umu.se>
Date: Thu Feb 27 15:18:52 2025 +0100

Avoid IS_SANDCASTLE tripping on //caffe2/test/cpp/jit:test_custom_class_registrations

diff --git a/test/export/test_export.py b/test/export/test_export.py
index 9d1006745b4..b7ee8c1d451 100644
--- a/test/export/test_export.py
+++ b/test/export/test_export.py
@@ -3917,7 +3917,7 @@ class TestExportCustomClass(TorchTestCase):
def setUp(self):
if IS_FBCODE:
lib_file_path = "//caffe2/test/cpp/jit:test_custom_class_registrations"
- elif IS_SANDCASTLE or IS_MACOS:
+ elif False or IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
elif IS_WINDOWS:
lib_file_path = find_library_location('torchbind_test.dll')
diff --git a/test/export/test_lift_unlift.py b/test/export/test_lift_unlift.py
index edbfa0803d4..a93728f8bd3 100644
--- a/test/export/test_lift_unlift.py
+++ b/test/export/test_lift_unlift.py
@@ -146,7 +146,7 @@ class TestLift(TestCase):
def setUp(self):
if IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
- elif IS_SANDCASTLE or IS_FBCODE:
+ elif False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
@@ -379,7 +379,7 @@ class ConstantAttrMapTest(TestCase):
def setUp(self):
if IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
- elif IS_SANDCASTLE or IS_FBCODE:
+ elif False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
diff --git a/test/export/test_serialize.py b/test/export/test_serialize.py
index 08381d95b44..59016a874ad 100644
--- a/test/export/test_serialize.py
+++ b/test/export/test_serialize.py
@@ -823,7 +823,7 @@ class TestSaveLoad(TestCase):
@unittest.skipIf(not torchdynamo.is_dynamo_supported(), "dynamo doesn't support")
class TestSerializeCustomClass(TestCase):
def setUp(self):
- if IS_SANDCASTLE or IS_FBCODE:
+ if False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
diff --git a/test/export/test_torchbind.py b/test/export/test_torchbind.py
index 362064812d4..e5b2f4ae511 100644
--- a/test/export/test_torchbind.py
+++ b/test/export/test_torchbind.py
@@ -21,7 +21,7 @@ class TestExportTorchbind(TestCase):
def setUp(self):
if IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
- elif IS_SANDCASTLE or IS_FBCODE:
+ elif False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
diff --git a/test/export/test_unflatten.py b/test/export/test_unflatten.py
index 64f123136ba..d0baef3777c 100644
--- a/test/export/test_unflatten.py
+++ b/test/export/test_unflatten.py
@@ -552,7 +552,7 @@ class TestUnflatten(TestCase):
def test_unflatten_constant_obj(self):
if IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
- elif IS_SANDCASTLE or IS_FBCODE:
+ elif False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
diff --git a/test/higher_order_ops/test_with_effects.py b/test/higher_order_ops/test_with_effects.py
index 0c8f12a1058..3347b6ca1fc 100644
--- a/test/higher_order_ops/test_with_effects.py
+++ b/test/higher_order_ops/test_with_effects.py
@@ -27,7 +27,7 @@ class TestWithEffects(TestCase):
def setUp(self):
if IS_MACOS:
raise unittest.SkipTest("non-portable load_library call used in test")
- elif IS_SANDCASTLE or IS_FBCODE:
+ elif False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
diff --git a/test/test_weak.py b/test/test_weak.py
index cc9ff6f58ee..54ee73a6dae 100644
--- a/test/test_weak.py
+++ b/test/test_weak.py
@@ -600,7 +600,7 @@ class WeakKeyDictionaryScriptObjectTestCase(TestCase):

def __init__(self, *args, **kw):
unittest.TestCase.__init__(self, *args, **kw)
- if IS_SANDCASTLE or IS_FBCODE:
+ if False or IS_FBCODE:
torch.ops.load_library(
"//caffe2/test/cpp/jit:test_custom_class_registrations"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
GCC 12 has a false positive warning when compiled for some architectures, e.g. Intel Sapphire Rapids.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112370

Suppress this warning such that the build doesn't error.

Author: Alexander Grund (TU Dresden)

Ported to 2.3.0, Åke Sandgren
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b74bf4536f4..bb062fa843a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -573,6 +573,7 @@ if(MSVC)
string(APPEND CMAKE_CXX_FLAGS " /FS")
string(APPEND CMAKE_CUDA_FLAGS " -Xcompiler /FS")
endif(MSVC)
+append_cxx_flag_if_supported("-Wno-free-nonheap-object" CMAKE_CXX_FLAGS)

string(APPEND CMAKE_CUDA_FLAGS " -Xfatbin -compress-all")

Loading