Skip to content

Commit 66fe0d1

Browse files
snadampalmalfet
authored andcommitted
aarch64: cd: switch from libomp to libgomp (#1787)
In the current version of the scripts, torch libraries are linked to llvm openmp becasue conda openblas-openmp is linked to it. to switch to gnu libgomp, we are building the openblas from sources instead of installing from conda. In essence it reverts #1462 fixes #1774 (cherry picked from commit b57d3a8)
1 parent 3a5f6ad commit 66fe0d1

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

Diff for: aarch64_linux/aarch64_ci_setup.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ if [[ "$DESIRED_PYTHON" == "3.8" ]]; then
3030
else
3131
pip install -q --pre numpy==2.0.0rc1
3232
fi
33-
conda install -y -c conda-forge pyyaml==6.0.1 patchelf==0.17.2 pygit2==1.13.2 openblas==0.3.25=*openmp* ninja==1.11.1 scons==4.5.2
33+
conda install -y -c conda-forge pyyaml==6.0.1 patchelf==0.17.2 pygit2==1.13.2 ninja==1.11.1 scons==4.5.2
3434

3535
python --version
3636
conda --version

Diff for: aarch64_linux/aarch64_wheel_ci_build.py

+40
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,43 @@ def list_dir(path: str) -> List[str]:
1515
return check_output(["ls", "-1", path]).decode().split("\n")
1616

1717

18+
def build_OpenBLAS() -> None:
19+
'''
20+
Building OpenBLAS, because the package in many linux is old
21+
'''
22+
print('Building OpenBLAS')
23+
openblas_build_flags = [
24+
"NUM_THREADS=128",
25+
"USE_OPENMP=1",
26+
"NO_SHARED=1",
27+
"DYNAMIC_ARCH=1",
28+
"TARGET=ARMV8",
29+
"CFLAGS=-O3",
30+
]
31+
openblas_checkout_dir = "OpenBLAS"
32+
33+
check_call(
34+
[
35+
"git",
36+
"clone",
37+
"https://github.com/OpenMathLib/OpenBLAS.git",
38+
"-b",
39+
"v0.3.25",
40+
"--depth",
41+
"1",
42+
"--shallow-submodules",
43+
]
44+
)
45+
46+
check_call(["make", "-j8"]
47+
+ openblas_build_flags,
48+
cwd=openblas_checkout_dir)
49+
check_call(["make", "-j8"]
50+
+ openblas_build_flags
51+
+ ["install"],
52+
cwd=openblas_checkout_dir)
53+
54+
1855
def build_ArmComputeLibrary() -> None:
1956
"""
2057
Using ArmComputeLibrary for aarch64 PyTorch
@@ -186,6 +223,7 @@ def parse_arguments():
186223
elif branch.startswith(("v1.", "v2.")):
187224
build_vars += f"BUILD_TEST=0 PYTORCH_BUILD_VERSION={branch[1:branch.find('-')]} PYTORCH_BUILD_NUMBER=1 "
188225

226+
build_OpenBLAS()
189227
if enable_mkldnn:
190228
build_ArmComputeLibrary()
191229
print("build pytorch with mkldnn+acl backend")
@@ -195,6 +233,8 @@ def parse_arguments():
195233
"LD_LIBRARY_PATH=/pytorch/build/lib:/acl/build:$LD_LIBRARY_PATH "
196234
"ACL_INCLUDE_DIR=/acl/build "
197235
"ACL_LIBRARY=/acl/build "
236+
"BLAS=OpenBLAS "
237+
"OpenBLAS_HOME=/OpenBLAS "
198238
)
199239
else:
200240
print("build pytorch without mkldnn backend")

0 commit comments

Comments
 (0)