From 1814952a1a8580273c492b01c38383277a226517 Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Wed, 2 Sep 2026 20:20:54 +0530 Subject: [PATCH 1/7] Added torch 2.13.0 --- t/torch | 1 - t/torch/LICENSE | 201 +++++++++++++++++++++++++++++++ t/torch/build_info.json | 19 +++ t/torch/torch_2.13.0_ubi_10.2.sh | 162 +++++++++++++++++++++++++ 4 files changed, 382 insertions(+), 1 deletion(-) delete mode 120000 t/torch create mode 100644 t/torch/LICENSE create mode 100644 t/torch/build_info.json create mode 100644 t/torch/torch_2.13.0_ubi_10.2.sh diff --git a/t/torch b/t/torch deleted file mode 120000 index 8391209aed..0000000000 --- a/t/torch +++ /dev/null @@ -1 +0,0 @@ -../p/pytorch/ \ No newline at end of file diff --git a/t/torch/LICENSE b/t/torch/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/t/torch/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/t/torch/build_info.json b/t/torch/build_info.json new file mode 100644 index 0000000000..d7ef0e5037 --- /dev/null +++ b/t/torch/build_info.json @@ -0,0 +1,19 @@ +{ + "maintainer": "Siddesh-Sangodkar1", + "package_name": "torch", + "github_url": "https://github.com/pytorch/pytorch", + "version": "2.13.0", + "default_branch": "main", + "package_dir": "t/torch", + "build_script": "torch_2.13.0_ubi_10.2.sh", + "docker_build": false, + "validate_build_script": true, + "use_non_root_user": false, + "wheel_build": true, + "2.13.0": { + "build_script": "torch_2.13.0_ubi_10.2.sh" + }, + "*": { + "build_script": "torch_2.13.0_ubi_10.2.sh" + } +} diff --git a/t/torch/torch_2.13.0_ubi_10.2.sh b/t/torch/torch_2.13.0_ubi_10.2.sh new file mode 100644 index 0000000000..b403c1548f --- /dev/null +++ b/t/torch/torch_2.13.0_ubi_10.2.sh @@ -0,0 +1,162 @@ +#!/bin/bash -e +# ----------------------------------------------------------------------------- +# +# Package : torch +# Version : 2.13.0 +# Source repo : https://github.com/pytorch/pytorch +# Tested on : UBI:10.2 +# Language : Python +# Ci-Check : True +# Script License : Apache License, Version 2 or later +# Maintainer : Siddesh Sangodkar +# +# Disclaimer: This script has been tested in root mode on given +# ========== platform using the mentioned version of the package. +# It may not work as expected with newer versions of the +# package and/or distribution. In such case, please +# contact "Maintainer" of this script. +# +# Note: torch 2.13.0 for ppc64le (cp314) is installed from the IBM +# DeveloperFirst pre-built wheel index — no CUDA is required +# (CPU-only build). numpy 2.5.1 is sourced from the same index +# as there is no ppc64le numpy wheel on PyPI. +# IBM Wheels index: https://wheels.developerfirst.ibm.com/ppc64le/linux/+simple/ +# +# ----------------------------------------------------------------------------- + +set -e + +PACKAGE_NAME=torch +PACKAGE_VERSION=${1:-2.13.0} +PACKAGE_URL=https://github.com/pytorch/pytorch +CURRENT_DIR=$(pwd) + +IBM_WHEELS="https://wheels.developerfirst.ibm.com/ppc64le/linux/+simple/" +IBM_WHEELS_HOST="wheels.developerfirst.ibm.com" + +# --------------------------------------------------------------------------- +# System dependencies +# --------------------------------------------------------------------------- +yum install -y python3.14 python3.14-devel python3.14-pip \ + git gcc-toolset-15 gcc-toolset-15-gcc gcc-toolset-15-gcc-c++ \ + make which curl tar \ + libffi-devel zlib-devel openssl-devel + +# UBI 10 dropped SCL — guard block +if [[ -f /opt/rh/gcc-toolset-15/enable ]]; then + source /opt/rh/gcc-toolset-15/enable +elif [[ -d /opt/rh/gcc-toolset-15/root/usr/bin ]]; then + export PATH="/opt/rh/gcc-toolset-15/root/usr/bin:$PATH" + export LD_LIBRARY_PATH="/opt/rh/gcc-toolset-15/root/usr/lib64:$LD_LIBRARY_PATH" +else + echo "ERROR: gcc-toolset-15 not found" + exit 1 +fi + +echo "Using gcc: $(gcc --version | head -1)" +echo "Using python: $(python3.14 --version)" + +# --------------------------------------------------------------------------- +# Python build tools +# --------------------------------------------------------------------------- +python3.14 -m pip install --upgrade pip setuptools wheel + +# --------------------------------------------------------------------------- +# Install numpy 2.5.1 from IBM DeveloperFirst index (no ppc64le wheel on PyPI) +# --------------------------------------------------------------------------- +python3.14 -m pip install \ + --trusted-host "${IBM_WHEELS_HOST}" \ + --index-url "${IBM_WHEELS}" \ + --extra-index-url https://pypi.org/simple/ \ + --prefer-binary \ + "numpy==2.5.1" + +# --------------------------------------------------------------------------- +# Install torch runtime dependencies (CPU-only; CUDA deps skipped on ppc64le) +# --------------------------------------------------------------------------- +python3.14 -m pip install \ + filelock \ + "typing-extensions>=4.10.0" \ + "setuptools>=77.0.3" \ + "sympy>=1.13.3" \ + "networkx>=2.5.1" \ + jinja2 \ + "fsspec>=0.8.5" \ + "optree>=0.13.0" \ + pyyaml + +# --------------------------------------------------------------------------- +# Install torch 2.13.0 (cp314, ppc64le) from IBM DeveloperFirst index +# --------------------------------------------------------------------------- +if ! python3.14 -m pip install \ + --trusted-host "${IBM_WHEELS_HOST}" \ + --index-url "${IBM_WHEELS}" \ + --extra-index-url https://pypi.org/simple/ \ + --prefer-binary \ + "torch==${PACKAGE_VERSION}"; then + echo "------------------$PACKAGE_NAME:Install_fails-------------------------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Fail | Install_Fails" + exit 1 +fi + +# Copy the installed wheel to CURRENT_DIR for CI artifact collection +TORCH_WHL=$(python3.14 -m pip download \ + --trusted-host "${IBM_WHEELS_HOST}" \ + --index-url "${IBM_WHEELS}" \ + --extra-index-url https://pypi.org/simple/ \ + --prefer-binary \ + --no-deps \ + --dest "${CURRENT_DIR}" \ + "torch==${PACKAGE_VERSION}" 2>&1 | grep "Saved" | awk '{print $2}') +echo "Wheel downloaded: ${TORCH_WHL}" + +# --------------------------------------------------------------------------- +# Smoke test +# --------------------------------------------------------------------------- +if ! python3.14 - <<'PYEOF' +import sys +import torch +import numpy as np + +print(f"torch version : {torch.__version__}") +print(f"numpy version : {np.__version__}") + +# Tensor creation and basic ops +x = torch.tensor([1.0, 2.0, 3.0]) +y = torch.tensor([4.0, 5.0, 6.0]) +z = x + y +assert z.tolist() == [5.0, 7.0, 9.0], f"Unexpected result: {z.tolist()}" +print("PASS tensor add") + +# Matrix multiply +a = torch.ones(3, 3) +b = torch.eye(3) +c = torch.mm(a, b) +assert c.equal(a), "matmul with identity failed" +print("PASS torch.mm") + +# torch.device — CPU only on ppc64le +assert torch.cuda.is_available() == False or True # either outcome is acceptable +print(f"PASS CUDA available: {torch.cuda.is_available()}") + +# NumPy bridge +arr = np.array([1.0, 2.0, 3.0], dtype=np.float32) +t = torch.from_numpy(arr) +assert t.sum().item() == 6.0, "numpy bridge failed" +print("PASS numpy bridge") + +print("\nAll tests passed.") +sys.exit(0) +PYEOF +then + echo "------------------$PACKAGE_NAME:Install_success_but_test_fails---------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Fail | Install_success_but_test_Fails" + exit 2 +else + echo "------------------$PACKAGE_NAME:Install_&_test_both_success-------------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Pass | Both_Install_and_Test_Success" + exit 0 +fi From 158a0cb540e5772b4b887bd92337200726f18773 Mon Sep 17 00:00:00 2001 From: Siddesh Sangodkar Date: Thu, 3 Sep 2026 17:35:51 +0530 Subject: [PATCH 2/7] Update build_info.json to include auditwheel_exclude Added auditwheel_exclude section with shared library names. --- t/torch/build_info.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/t/torch/build_info.json b/t/torch/build_info.json index d7ef0e5037..83fd39835c 100644 --- a/t/torch/build_info.json +++ b/t/torch/build_info.json @@ -10,6 +10,13 @@ "validate_build_script": true, "use_non_root_user": false, "wheel_build": true, + "auditwheel_exclude": [ + "libc10.so", + "libtorch.so", + "libtorch_cpu.so", + "libtorch_python.so", + "libshm.so" + ], "2.13.0": { "build_script": "torch_2.13.0_ubi_10.2.sh" }, From 68f321a119fa075fe821af72aef6a2a895936699 Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Thu, 3 Sep 2026 18:03:16 +0530 Subject: [PATCH 3/7] move to pytorch directory --- p/pytorch/build_info.json | 12 +- .../pytorch/pytorch_2.13.0_ubi_10.2.sh | 0 t/torch/LICENSE | 201 ------------------ t/torch/build_info.json | 19 -- 4 files changed, 8 insertions(+), 224 deletions(-) rename t/torch/torch_2.13.0_ubi_10.2.sh => p/pytorch/pytorch_2.13.0_ubi_10.2.sh (100%) delete mode 100644 t/torch/LICENSE delete mode 100644 t/torch/build_info.json diff --git a/p/pytorch/build_info.json b/p/pytorch/build_info.json index 8db2ebbd0b..4db016b300 100644 --- a/p/pytorch/build_info.json +++ b/p/pytorch/build_info.json @@ -1,12 +1,12 @@ { - "maintainer": "saisrivatsa", + "maintainer": "Siddesh-Sangodkar1", "package_name": "pytorch", "github_url": "https://github.com/pytorch/pytorch.git", - "version": "v2.6.0", + "version": "2.13.0", "wheel_build" : true, "default_branch": "main", "package_dir": "p/pytorch", - "build_script": "pytorch_2.7.1_ubi_9.3.sh", + "build_script": "pytorch_2.13.0_ubi_10.2.sh", "docker_build": false, "validate_build_script": true, "use_non_root_user": false, @@ -50,5 +50,9 @@ }, "v2.1.2":{ "build_script":"pytorch_2.1.0_ubi_9.3.sh" - } + }, + "2.13.0": { + "build_script": "pytorch_2.13.0_ubi_10.2.sh" + } + } diff --git a/t/torch/torch_2.13.0_ubi_10.2.sh b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh similarity index 100% rename from t/torch/torch_2.13.0_ubi_10.2.sh rename to p/pytorch/pytorch_2.13.0_ubi_10.2.sh diff --git a/t/torch/LICENSE b/t/torch/LICENSE deleted file mode 100644 index 8dada3edaf..0000000000 --- a/t/torch/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/t/torch/build_info.json b/t/torch/build_info.json deleted file mode 100644 index d7ef0e5037..0000000000 --- a/t/torch/build_info.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "maintainer": "Siddesh-Sangodkar1", - "package_name": "torch", - "github_url": "https://github.com/pytorch/pytorch", - "version": "2.13.0", - "default_branch": "main", - "package_dir": "t/torch", - "build_script": "torch_2.13.0_ubi_10.2.sh", - "docker_build": false, - "validate_build_script": true, - "use_non_root_user": false, - "wheel_build": true, - "2.13.0": { - "build_script": "torch_2.13.0_ubi_10.2.sh" - }, - "*": { - "build_script": "torch_2.13.0_ubi_10.2.sh" - } -} From e5c4def405fb8d2f21a351594ed6961fa5a23c39 Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Fri, 4 Sep 2026 11:05:52 +0530 Subject: [PATCH 4/7] restore link --- t/touch | 1 + 1 file changed, 1 insertion(+) create mode 100644 t/touch diff --git a/t/touch b/t/touch new file mode 100644 index 0000000000..8391209aed --- /dev/null +++ b/t/touch @@ -0,0 +1 @@ +../p/pytorch/ \ No newline at end of file From 17e6c4e2fa6efa7ec2afe9b7742f1eaabf413e90 Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Fri, 4 Sep 2026 17:32:05 +0530 Subject: [PATCH 5/7] Added numpy 2.5.0 change --- p/pytorch/build_info.json | 11 +- p/pytorch/pytorch_2.13.0_ubi_10.2.sh | 197 +++++++++++++++++++++++++++ 2 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 p/pytorch/pytorch_2.13.0_ubi_10.2.sh diff --git a/p/pytorch/build_info.json b/p/pytorch/build_info.json index 8db2ebbd0b..81b938f9ef 100644 --- a/p/pytorch/build_info.json +++ b/p/pytorch/build_info.json @@ -1,12 +1,12 @@ { - "maintainer": "saisrivatsa", + "maintainer": "Siddesh-Sangodkar1", "package_name": "pytorch", "github_url": "https://github.com/pytorch/pytorch.git", - "version": "v2.6.0", + "version": "2.13.0", "wheel_build" : true, "default_branch": "main", "package_dir": "p/pytorch", - "build_script": "pytorch_2.7.1_ubi_9.3.sh", + "build_script": "pytorch_2.13.0_ubi_10.2.sh", "docker_build": false, "validate_build_script": true, "use_non_root_user": false, @@ -50,5 +50,8 @@ }, "v2.1.2":{ "build_script":"pytorch_2.1.0_ubi_9.3.sh" - } + }, + "2.13.0": { + "build_script": "pytorch_2.13.0_ubi_10.2.sh" + } } diff --git a/p/pytorch/pytorch_2.13.0_ubi_10.2.sh b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh new file mode 100644 index 0000000000..e9ea679201 --- /dev/null +++ b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh @@ -0,0 +1,197 @@ +#!/bin/bash -e +# ----------------------------------------------------------------------------- +# +# Package : torch +# Version : 2.13.0 +# Source repo : https://github.com/pytorch/pytorch +# Tested on : UBI:10.2 +# Language : Python +# Ci-Check : True +# Script License : Apache License, Version 2 or later +# Maintainer : Siddesh Sangodkar +# +# Disclaimer: This script has been tested in root mode on given +# ========== platform using the mentioned version of the package. +# It may not work as expected with newer versions of the +# package and/or distribution. In such case, please +# contact "Maintainer" of this script. +# +# Note: torch 2.13.0 for ppc64le (cp314) is installed from the IBM +# DeveloperFirst pre-built wheel index — no CUDA is required +# (CPU-only build). numpy 2.5.0 is built from source using the +# Meson-python backend with system openblas-devel (UBI 10.2 ppc64le). +# IBM Wheels index: https://wheels.developerfirst.ibm.com/ppc64le/linux/+simple/ +# +# ----------------------------------------------------------------------------- + +set -e + +PACKAGE_NAME=torch +PACKAGE_VERSION=${1:-2.13.0} +PACKAGE_URL=https://github.com/pytorch/pytorch +CURRENT_DIR=$(pwd) + +IBM_WHEELS="https://wheels.developerfirst.ibm.com/ppc64le/linux/+simple/" +IBM_WHEELS_HOST="wheels.developerfirst.ibm.com" + +# --------------------------------------------------------------------------- +# System dependencies +# --------------------------------------------------------------------------- +yum install -y python3.14 python3.14-devel python3.14-pip \ + git gcc-toolset-15 gcc-toolset-15-gcc gcc-toolset-15-gcc-c++ \ + gcc-toolset-15-gcc-gfortran \ + cmake ninja-build \ + openblas-devel \ + pkg-config \ + make which curl tar \ + libffi-devel zlib-devel openssl-devel + +# UBI 10 dropped SCL — guard block +if [[ -f /opt/rh/gcc-toolset-15/enable ]]; then + source /opt/rh/gcc-toolset-15/enable +elif [[ -d /opt/rh/gcc-toolset-15/root/usr/bin ]]; then + export PATH="/opt/rh/gcc-toolset-15/root/usr/bin:$PATH" + export LD_LIBRARY_PATH="/opt/rh/gcc-toolset-15/root/usr/lib64:$LD_LIBRARY_PATH" +else + echo "ERROR: gcc-toolset-15 not found" + exit 1 +fi + +echo "Using gcc: $(gcc --version | head -1)" +echo "Using python: $(python3.14 --version)" + +# --------------------------------------------------------------------------- +# Python build tools +# --------------------------------------------------------------------------- +python3.14 -m pip install --upgrade pip setuptools wheel build +python3.14 -m pip install "meson-python>=0.18.0" "Cython>=3.0.6" meson ninja patchelf + +# --------------------------------------------------------------------------- +# Build numpy 2.5.0 from source (Meson-python + system openblas-devel) +# --------------------------------------------------------------------------- +NUMPY_VERSION=2.5.0 +NUMPY_URL=https://github.com/numpy/numpy + +git clone "${NUMPY_URL}" numpy-src +cd numpy-src + +if git rev-parse "v${NUMPY_VERSION}" &>/dev/null; then + git checkout "v${NUMPY_VERSION}" +elif git rev-parse "${NUMPY_VERSION}" &>/dev/null; then + git checkout "${NUMPY_VERSION}" +else + echo "ERROR: No git tag found for numpy version '${NUMPY_VERSION}'" + exit 1 +fi + +git submodule sync --recursive +git submodule update --init --recursive + +export PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig:${PKG_CONFIG_PATH:-}" + +if ! python3.14 -m build --wheel --no-isolation \ + -Csetup-args="-Dblas=openblas" \ + -Csetup-args="-Dlapack=openblas" \ + --outdir="${CURRENT_DIR}/"; then + echo "------------------numpy:Install_fails-------------------------------------" + echo "${NUMPY_URL} numpy" + echo "numpy | ${NUMPY_URL} | ${NUMPY_VERSION} | GitHub | Fail | Install_Fails" + exit 1 +fi + +NUMPY_WHL=$(find "${CURRENT_DIR}" -maxdepth 1 -name "numpy-*.whl" | head -1) +echo "Installing numpy wheel: ${NUMPY_WHL}" +python3.14 -m pip install "${NUMPY_WHL}" + +cd "${CURRENT_DIR}" + +# --------------------------------------------------------------------------- +# Install torch runtime dependencies (CPU-only; CUDA deps skipped on ppc64le) +# --------------------------------------------------------------------------- +python3.14 -m pip install \ + filelock \ + "typing-extensions>=4.10.0" \ + "setuptools>=77.0.3" \ + "sympy>=1.13.3" \ + "networkx>=2.5.1" \ + jinja2 \ + "fsspec>=0.8.5" \ + "optree>=0.13.0" \ + pyyaml + +# --------------------------------------------------------------------------- +# Install torch 2.13.0 (cp314, ppc64le) from IBM DeveloperFirst index +# --------------------------------------------------------------------------- +if ! python3.14 -m pip install \ + --trusted-host "${IBM_WHEELS_HOST}" \ + --index-url "${IBM_WHEELS}" \ + --extra-index-url https://pypi.org/simple/ \ + --prefer-binary \ + "torch==${PACKAGE_VERSION}"; then + echo "------------------$PACKAGE_NAME:Install_fails-------------------------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Fail | Install_Fails" + exit 1 +fi + +# Copy the installed wheel to CURRENT_DIR for CI artifact collection +TORCH_WHL=$(python3.14 -m pip download \ + --trusted-host "${IBM_WHEELS_HOST}" \ + --index-url "${IBM_WHEELS}" \ + --extra-index-url https://pypi.org/simple/ \ + --prefer-binary \ + --no-deps \ + --dest "${CURRENT_DIR}" \ + "torch==${PACKAGE_VERSION}" 2>&1 | grep "Saved" | awk '{print $2}') +echo "Wheel downloaded: ${TORCH_WHL}" + +# --------------------------------------------------------------------------- +# Smoke test +# --------------------------------------------------------------------------- +if ! python3.14 - <<'PYEOF' +import sys +import torch +import numpy as np + +print(f"torch version : {torch.__version__}") +print(f"numpy version : {np.__version__}") +assert np.__version__ == "2.5.0", f"Expected numpy 2.5.0, got {np.__version__}" + +# Tensor creation and basic ops +x = torch.tensor([1.0, 2.0, 3.0]) +y = torch.tensor([4.0, 5.0, 6.0]) +z = x + y +assert z.tolist() == [5.0, 7.0, 9.0], f"Unexpected result: {z.tolist()}" +print("PASS tensor add") + +# Matrix multiply +a = torch.ones(3, 3) +b = torch.eye(3) +c = torch.mm(a, b) +assert c.equal(a), "matmul with identity failed" +print("PASS torch.mm") + +# torch.device — CPU only on ppc64le +assert torch.cuda.is_available() == False or True # either outcome is acceptable +print(f"PASS CUDA available: {torch.cuda.is_available()}") + +# NumPy bridge +arr = np.array([1.0, 2.0, 3.0], dtype=np.float32) +t = torch.from_numpy(arr) +assert t.sum().item() == 6.0, "numpy bridge failed" +print("PASS numpy bridge") + +print("\nAll tests passed.") +sys.exit(0) +PYEOF +then + echo "------------------$PACKAGE_NAME:Install_success_but_test_fails---------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Fail | Install_success_but_test_Fails" + exit 2 +else + echo "------------------$PACKAGE_NAME:Install_&_test_both_success-------------------------" + echo "$PACKAGE_URL $PACKAGE_NAME" + echo "$PACKAGE_NAME | $PACKAGE_URL | $PACKAGE_VERSION | GitHub | Pass | Both_Install_and_Test_Success" + exit 0 +fi From e73439101fc51335cc774fd4fe3a042b87245421 Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Fri, 4 Sep 2026 17:39:38 +0530 Subject: [PATCH 6/7] fix PACKAGE_NAME --- p/pytorch/pytorch_2.13.0_ubi_10.2.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/p/pytorch/pytorch_2.13.0_ubi_10.2.sh b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh index e9ea679201..3c449ad110 100644 --- a/p/pytorch/pytorch_2.13.0_ubi_10.2.sh +++ b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # ----------------------------------------------------------------------------- # -# Package : torch +# Package : pytorch # Version : 2.13.0 # Source repo : https://github.com/pytorch/pytorch # Tested on : UBI:10.2 @@ -26,7 +26,7 @@ set -e -PACKAGE_NAME=torch +PACKAGE_NAME=pytorch PACKAGE_VERSION=${1:-2.13.0} PACKAGE_URL=https://github.com/pytorch/pytorch CURRENT_DIR=$(pwd) From 8c87e45c6307c9ea56ca53c7cbb4a4407551bcca Mon Sep 17 00:00:00 2001 From: Siddesh-Sangodkar1 Date: Mon, 7 Sep 2026 12:57:23 +0530 Subject: [PATCH 7/7] added cleanup --- p/pytorch/pytorch_2.13.0_ubi_10.2.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/p/pytorch/pytorch_2.13.0_ubi_10.2.sh b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh index 3c449ad110..219cb87013 100644 --- a/p/pytorch/pytorch_2.13.0_ubi_10.2.sh +++ b/p/pytorch/pytorch_2.13.0_ubi_10.2.sh @@ -16,7 +16,7 @@ # package and/or distribution. In such case, please # contact "Maintainer" of this script. # -# Note: torch 2.13.0 for ppc64le (cp314) is installed from the IBM +# Note: pytorch 2.13.0 for ppc64le (cp314) is installed from the IBM # DeveloperFirst pre-built wheel index — no CUDA is required # (CPU-only build). numpy 2.5.0 is built from source using the # Meson-python backend with system openblas-devel (UBI 10.2 ppc64le). @@ -102,6 +102,7 @@ fi NUMPY_WHL=$(find "${CURRENT_DIR}" -maxdepth 1 -name "numpy-*.whl" | head -1) echo "Installing numpy wheel: ${NUMPY_WHL}" python3.14 -m pip install "${NUMPY_WHL}" +rm -f "${CURRENT_DIR}"/numpy-*.whl cd "${CURRENT_DIR}"