Skip to content

Commit ae9d2f8

Browse files
author
Tim De Jong
committed
Reverted back to building pytorch from source with clang to see if this causes the issues with the KeyPathIterable.
1 parent 8819d4d commit ae9d2f8

File tree

1 file changed

+186
-186
lines changed

1 file changed

+186
-186
lines changed

Dockerfile

Lines changed: 186 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -182,206 +182,206 @@ RUN df -h && \
182182

183183
# Stage 1: Clone PyTorch repository at specific version with retry logic
184184
# Clone the specific tag directly with --branch to avoid checkout issues
185-
# RUN git clone --depth=1 --shallow-submodules --branch ${PYTORCH_VERSION} \
186-
# https://github.com/pytorch/pytorch.git /tmp/pytorch || \
187-
# (echo "First clone attempt failed, retrying..." && sleep 10 && \
188-
# git clone --depth=1 --shallow-submodules --branch ${PYTORCH_VERSION} \
189-
# https://github.com/pytorch/pytorch.git /tmp/pytorch)
185+
RUN git clone --depth=1 --shallow-submodules --branch ${PYTORCH_VERSION} \
186+
https://github.com/pytorch/pytorch.git /tmp/pytorch || \
187+
(echo "First clone attempt failed, retrying..." && sleep 10 && \
188+
git clone --depth=1 --shallow-submodules --branch ${PYTORCH_VERSION} \
189+
https://github.com/pytorch/pytorch.git /tmp/pytorch)
190190

191191
# # Stage 2: Update submodules (checkout is already done by the clone)
192-
# RUN cd /tmp/pytorch && \
193-
# git submodule sync && \
194-
# git submodule update --init --depth=1 --recursive
192+
RUN cd /tmp/pytorch && \
193+
git submodule sync && \
194+
git submodule update --init --depth=1 --recursive
195195

196196
# Stage 3: Configure PyTorch build with libc++ detection
197197
# This is complex because PyTorch and Swift need to use the same C++ standard library
198-
# RUN . /etc/profile.d/pytorch.sh && \
199-
# echo "Using OpenMP include: $OMP_INCLUDE_DIR" && \
200-
# echo "Using OpenMP library: $OMP_LIBRARY" && \
201-
# cd /tmp/pytorch && \
202-
# mkdir -p build && \
203-
# cd build && \
204-
# \
205-
# # Step 2: Locate compiler and toolchain directories
206-
# # We need to know where clang and Swift are installed to configure the build
207-
# CLANG_RESOURCE_DIR="$(clang++ -print-resource-dir)" && \
208-
# LLVM_BASE_DIR="$(realpath "${CLANG_RESOURCE_DIR}/../../..")" && \
209-
# echo "Clang resource dir: ${CLANG_RESOURCE_DIR}" && \
210-
# echo "LLVM base dir: ${LLVM_BASE_DIR}" && \
211-
# SWIFT_BIN="$(which swift)" && \
212-
# SWIFT_TOOLCHAIN_DIR="$(dirname $(dirname ${SWIFT_BIN}))" && \
213-
# echo "Swift toolchain dir: ${SWIFT_TOOLCHAIN_DIR}" && \
214-
# \
215-
# # Step 3: Find libc++ (C++ standard library)
216-
# # TaylorTorch uses Swift C++ interop, so PyTorch must use the same C++ stdlib as Swift
217-
# # Try Swift's bundled libc++ first, then fall back to system LLVM 17
218-
# LIBCXX_INCLUDE_DIR="" && \
219-
# LIBCXX_SOURCE="unknown" && \
220-
# for candidate in \
221-
# "${SWIFT_TOOLCHAIN_DIR}/lib/swift/clang/include/c++/v1" \
222-
# "${SWIFT_TOOLCHAIN_DIR}/include/c++/v1" \
223-
# "${SWIFT_TOOLCHAIN_DIR}/lib/swift_static/clang/include/c++/v1" \
224-
# "${CLANG_RESOURCE_DIR}/../../../include/c++/v1"; do \
225-
# if [ -d "${candidate}" ] && [ -f "${candidate}/cstddef" ]; then \
226-
# LIBCXX_INCLUDE_DIR="$(realpath "${candidate}")" && \
227-
# LIBCXX_SOURCE="Swift toolchain" && \
228-
# echo "✓ Found libc++ in Swift toolchain at ${LIBCXX_INCLUDE_DIR}" && \
229-
# break; \
230-
# fi; \
231-
# done && \
232-
# if [ -z "${LIBCXX_INCLUDE_DIR}" ]; then \
233-
# echo "ℹ Swift toolchain doesn't include libc++, using system LLVM 17" && \
234-
# for candidate in \
235-
# "/usr/lib/llvm-17/include/c++/v1" \
236-
# "/usr/include/c++/v1"; do \
237-
# if [ -d "${candidate}" ] && [ -f "${candidate}/cstddef" ]; then \
238-
# LIBCXX_INCLUDE_DIR="$(realpath "${candidate}")" && \
239-
# LIBCXX_SOURCE="system LLVM 17" && \
240-
# echo "✓ Found libc++ in system at ${LIBCXX_INCLUDE_DIR}" && \
241-
# break; \
242-
# fi; \
243-
# done; \
244-
# fi && \
245-
# if [ -z "${LIBCXX_INCLUDE_DIR}" ]; then \
246-
# echo "ERROR: Unable to locate libc++ headers." && \
247-
# echo "Please ensure libc++-17-dev is installed." && \
248-
# exit 1; \
249-
# fi && \
250-
# LIBCXX_LIBRARY_DIR="" && \
251-
# if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
252-
# for candidate in \
253-
# "${SWIFT_TOOLCHAIN_DIR}/lib/swift/linux" \
254-
# "${SWIFT_TOOLCHAIN_DIR}/lib"; do \
255-
# if ls "${candidate}/libc++.so"* >/dev/null 2>&1; then \
256-
# LIBCXX_LIBRARY_DIR="$(realpath "${candidate}")" && \
257-
# echo "✓ Found libc++ library in Swift toolchain at ${LIBCXX_LIBRARY_DIR}" && \
258-
# break; \
259-
# fi; \
260-
# done; \
261-
# fi && \
262-
# if [ -z "${LIBCXX_LIBRARY_DIR}" ]; then \
263-
# for candidate in \
264-
# "/usr/lib/llvm-17/lib" \
265-
# "/usr/lib/x86_64-linux-gnu" \
266-
# "/usr/lib"; do \
267-
# if ls "${candidate}/libc++.so"* >/dev/null 2>&1; then \
268-
# LIBCXX_LIBRARY_DIR="$(realpath "${candidate}")" && \
269-
# echo "✓ Found libc++ library at ${LIBCXX_LIBRARY_DIR}" && \
270-
# break; \
271-
# fi; \
272-
# done; \
273-
# fi && \
274-
# if [ -z "${LIBCXX_LIBRARY_DIR}" ]; then \
275-
# echo "ERROR: Unable to locate libc++ libraries." && \
276-
# echo "Please ensure libc++-17-dev is installed." && \
277-
# exit 1; \
278-
# fi && \
279-
# echo "libc++ include dir: ${LIBCXX_INCLUDE_DIR}" && \
280-
# echo "libc++ library dir: ${LIBCXX_LIBRARY_DIR}" && \
281-
# export USE_LIBCXX=1 && \
282-
# if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
283-
# export CPLUS_INCLUDE_PATH="${SWIFT_TOOLCHAIN_DIR}/lib/swift:${SWIFT_TOOLCHAIN_DIR}/lib/swift/clang/include"; \
284-
# fi && \
285-
# export CXXFLAGS="-stdlib=libc++" && \
286-
# export LDFLAGS="-L${LIBCXX_LIBRARY_DIR}" && \
287-
# if [ -n "$LIBRARY_PATH" ]; then \
288-
# export LIBRARY_PATH="${LIBCXX_LIBRARY_DIR}:${LIBRARY_PATH}"; \
289-
# else \
290-
# export LIBRARY_PATH="${LIBCXX_LIBRARY_DIR}"; \
291-
# fi && \
292-
# OPENMP_C_FLAGS="-fopenmp=libomp" && \
293-
# OPENMP_CXX_FLAGS="-fopenmp=libomp" && \
294-
# RESOURCE_INCLUDE="$(realpath "${CLANG_RESOURCE_DIR}/include")" && \
295-
# if [ -n "$OMP_INCLUDE_DIR" ] && [ "$OMP_INCLUDE_DIR" != "$RESOURCE_INCLUDE" ]; then \
296-
# OPENMP_C_FLAGS="$OPENMP_C_FLAGS -I${OMP_INCLUDE_DIR}" && \
297-
# OPENMP_CXX_FLAGS="$OPENMP_CXX_FLAGS -I${OMP_INCLUDE_DIR}"; \
298-
# fi && \
299-
# if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
300-
# BUILD_CC="${SWIFT_TOOLCHAIN_DIR}/bin/clang" && \
301-
# BUILD_CXX="${SWIFT_TOOLCHAIN_DIR}/bin/clang++" && \
302-
# BUILD_RESOURCE_INCLUDE="${RESOURCE_INCLUDE}" && \
303-
# echo "✓ Using Swift's clang for PyTorch build"; \
304-
# else \
305-
# if [ -f "/usr/lib/llvm-17/bin/clang" ] && [ -f "/usr/lib/llvm-17/bin/clang++" ]; then \
306-
# BUILD_CC="/usr/lib/llvm-17/bin/clang" && \
307-
# BUILD_CXX="/usr/lib/llvm-17/bin/clang++" && \
308-
# BUILD_RESOURCE_INCLUDE="/usr/lib/llvm-17/lib/clang/17/include" && \
309-
# echo "✓ Using system clang-17 for PyTorch build (matches libc++ 17)"; \
310-
# else \
311-
# echo "⚠ System clang-17 not found, falling back to Swift's clang" && \
312-
# BUILD_CC="${SWIFT_TOOLCHAIN_DIR}/bin/clang" && \
313-
# BUILD_CXX="${SWIFT_TOOLCHAIN_DIR}/bin/clang++" && \
314-
# BUILD_RESOURCE_INCLUDE="${RESOURCE_INCLUDE}"; \
315-
# fi; \
316-
# fi && \
317-
# CMAKE_CXX_FLAGS="-stdlib=libc++" && \
318-
# if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
319-
# CMAKE_PREFIX_PATH="${LLVM_BASE_DIR};/usr"; \
320-
# else \
321-
# CMAKE_PREFIX_PATH="/usr/lib/llvm-17;/usr"; \
322-
# fi && \
323-
# echo "=== Build Configuration ===" && \
324-
# echo "Compiler: ${BUILD_CC}" && \
325-
# echo "C++ Compiler: ${BUILD_CXX}" && \
326-
# echo "libc++ Source: ${LIBCXX_SOURCE}" && \
327-
# echo "libc++ Include: ${LIBCXX_INCLUDE_DIR}" && \
328-
# echo "libc++ Library: ${LIBCXX_LIBRARY_DIR}" && \
329-
# echo "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}" && \
330-
# echo "===========================" && \
331-
# CC="${BUILD_CC}" CXX="${BUILD_CXX}" cmake .. \
332-
# -DCMAKE_C_COMPILER="${BUILD_CC}" \
333-
# -DCMAKE_CXX_COMPILER="${BUILD_CXX}" \
334-
# -DCMAKE_CXX_STANDARD=17 \
335-
# -DCMAKE_CXX_EXTENSIONS=OFF \
336-
# -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" \
337-
# -DCMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR}" \
338-
# -DCMAKE_SHARED_LINKER_FLAGS="-stdlib=libc++ -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR}" \
339-
# -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
340-
# -DUSE_LIBCXX=ON \
341-
# -DOpenMP_C_FLAGS="${OPENMP_C_FLAGS}" \
342-
# -DOpenMP_CXX_FLAGS="${OPENMP_CXX_FLAGS}" \
343-
# -DOpenMP_C_LIB_NAMES="libomp" \
344-
# -DOpenMP_CXX_LIB_NAMES="libomp" \
345-
# -DOpenMP_libomp_LIBRARY="${OMP_LIBRARY}" \
346-
# -DBUILD_SHARED_LIBS=ON \
347-
# -DCMAKE_BUILD_TYPE=Release \
348-
# -DCMAKE_INSTALL_PREFIX=/opt/pytorch \
349-
# -DBUILD_PYTHON=OFF \
350-
# -DBUILD_TEST=OFF \
351-
# -DBUILD_CAFFE2=OFF \
352-
# -DUSE_DISTRIBUTED=OFF \
353-
# -DUSE_MPS=OFF \
354-
# -DUSE_CUDA=OFF \
355-
# -DUSE_MKLDNN=OFF \
356-
# -DUSE_XNNPACK=OFF \
357-
# -DUSE_QNNPACK=OFF \
358-
# -DUSE_FBGEMM=OFF \
359-
# -DPYTHON_EXECUTABLE=$(which python3) \
360-
# -D_GLIBCXX_USE_CXX11_ABI=1 \
361-
# -GNinja
198+
RUN . /etc/profile.d/pytorch.sh && \
199+
echo "Using OpenMP include: $OMP_INCLUDE_DIR" && \
200+
echo "Using OpenMP library: $OMP_LIBRARY" && \
201+
cd /tmp/pytorch && \
202+
mkdir -p build && \
203+
cd build && \
204+
\
205+
# Step 2: Locate compiler and toolchain directories
206+
# We need to know where clang and Swift are installed to configure the build
207+
CLANG_RESOURCE_DIR="$(clang++ -print-resource-dir)" && \
208+
LLVM_BASE_DIR="$(realpath "${CLANG_RESOURCE_DIR}/../../..")" && \
209+
echo "Clang resource dir: ${CLANG_RESOURCE_DIR}" && \
210+
echo "LLVM base dir: ${LLVM_BASE_DIR}" && \
211+
SWIFT_BIN="$(which swift)" && \
212+
SWIFT_TOOLCHAIN_DIR="$(dirname $(dirname ${SWIFT_BIN}))" && \
213+
echo "Swift toolchain dir: ${SWIFT_TOOLCHAIN_DIR}" && \
214+
\
215+
# Step 3: Find libc++ (C++ standard library)
216+
# TaylorTorch uses Swift C++ interop, so PyTorch must use the same C++ stdlib as Swift
217+
# Try Swift's bundled libc++ first, then fall back to system LLVM 17
218+
LIBCXX_INCLUDE_DIR="" && \
219+
LIBCXX_SOURCE="unknown" && \
220+
for candidate in \
221+
"${SWIFT_TOOLCHAIN_DIR}/lib/swift/clang/include/c++/v1" \
222+
"${SWIFT_TOOLCHAIN_DIR}/include/c++/v1" \
223+
"${SWIFT_TOOLCHAIN_DIR}/lib/swift_static/clang/include/c++/v1" \
224+
"${CLANG_RESOURCE_DIR}/../../../include/c++/v1"; do \
225+
if [ -d "${candidate}" ] && [ -f "${candidate}/cstddef" ]; then \
226+
LIBCXX_INCLUDE_DIR="$(realpath "${candidate}")" && \
227+
LIBCXX_SOURCE="Swift toolchain" && \
228+
echo "✓ Found libc++ in Swift toolchain at ${LIBCXX_INCLUDE_DIR}" && \
229+
break; \
230+
fi; \
231+
done && \
232+
if [ -z "${LIBCXX_INCLUDE_DIR}" ]; then \
233+
echo "ℹ Swift toolchain doesn't include libc++, using system LLVM 17" && \
234+
for candidate in \
235+
"/usr/lib/llvm-17/include/c++/v1" \
236+
"/usr/include/c++/v1"; do \
237+
if [ -d "${candidate}" ] && [ -f "${candidate}/cstddef" ]; then \
238+
LIBCXX_INCLUDE_DIR="$(realpath "${candidate}")" && \
239+
LIBCXX_SOURCE="system LLVM 17" && \
240+
echo "✓ Found libc++ in system at ${LIBCXX_INCLUDE_DIR}" && \
241+
break; \
242+
fi; \
243+
done; \
244+
fi && \
245+
if [ -z "${LIBCXX_INCLUDE_DIR}" ]; then \
246+
echo "ERROR: Unable to locate libc++ headers." && \
247+
echo "Please ensure libc++-17-dev is installed." && \
248+
exit 1; \
249+
fi && \
250+
LIBCXX_LIBRARY_DIR="" && \
251+
if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
252+
for candidate in \
253+
"${SWIFT_TOOLCHAIN_DIR}/lib/swift/linux" \
254+
"${SWIFT_TOOLCHAIN_DIR}/lib"; do \
255+
if ls "${candidate}/libc++.so"* >/dev/null 2>&1; then \
256+
LIBCXX_LIBRARY_DIR="$(realpath "${candidate}")" && \
257+
echo "✓ Found libc++ library in Swift toolchain at ${LIBCXX_LIBRARY_DIR}" && \
258+
break; \
259+
fi; \
260+
done; \
261+
fi && \
262+
if [ -z "${LIBCXX_LIBRARY_DIR}" ]; then \
263+
for candidate in \
264+
"/usr/lib/llvm-17/lib" \
265+
"/usr/lib/x86_64-linux-gnu" \
266+
"/usr/lib"; do \
267+
if ls "${candidate}/libc++.so"* >/dev/null 2>&1; then \
268+
LIBCXX_LIBRARY_DIR="$(realpath "${candidate}")" && \
269+
echo "✓ Found libc++ library at ${LIBCXX_LIBRARY_DIR}" && \
270+
break; \
271+
fi; \
272+
done; \
273+
fi && \
274+
if [ -z "${LIBCXX_LIBRARY_DIR}" ]; then \
275+
echo "ERROR: Unable to locate libc++ libraries." && \
276+
echo "Please ensure libc++-17-dev is installed." && \
277+
exit 1; \
278+
fi && \
279+
echo "libc++ include dir: ${LIBCXX_INCLUDE_DIR}" && \
280+
echo "libc++ library dir: ${LIBCXX_LIBRARY_DIR}" && \
281+
export USE_LIBCXX=1 && \
282+
if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
283+
export CPLUS_INCLUDE_PATH="${SWIFT_TOOLCHAIN_DIR}/lib/swift:${SWIFT_TOOLCHAIN_DIR}/lib/swift/clang/include"; \
284+
fi && \
285+
export CXXFLAGS="-stdlib=libc++" && \
286+
export LDFLAGS="-L${LIBCXX_LIBRARY_DIR}" && \
287+
if [ -n "$LIBRARY_PATH" ]; then \
288+
export LIBRARY_PATH="${LIBCXX_LIBRARY_DIR}:${LIBRARY_PATH}"; \
289+
else \
290+
export LIBRARY_PATH="${LIBCXX_LIBRARY_DIR}"; \
291+
fi && \
292+
OPENMP_C_FLAGS="-fopenmp=libomp" && \
293+
OPENMP_CXX_FLAGS="-fopenmp=libomp" && \
294+
RESOURCE_INCLUDE="$(realpath "${CLANG_RESOURCE_DIR}/include")" && \
295+
if [ -n "$OMP_INCLUDE_DIR" ] && [ "$OMP_INCLUDE_DIR" != "$RESOURCE_INCLUDE" ]; then \
296+
OPENMP_C_FLAGS="$OPENMP_C_FLAGS -I${OMP_INCLUDE_DIR}" && \
297+
OPENMP_CXX_FLAGS="$OPENMP_CXX_FLAGS -I${OMP_INCLUDE_DIR}"; \
298+
fi && \
299+
if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
300+
BUILD_CC="${SWIFT_TOOLCHAIN_DIR}/bin/clang" && \
301+
BUILD_CXX="${SWIFT_TOOLCHAIN_DIR}/bin/clang++" && \
302+
BUILD_RESOURCE_INCLUDE="${RESOURCE_INCLUDE}" && \
303+
echo "✓ Using Swift's clang for PyTorch build"; \
304+
else \
305+
if [ -f "/usr/lib/llvm-17/bin/clang" ] && [ -f "/usr/lib/llvm-17/bin/clang++" ]; then \
306+
BUILD_CC="/usr/lib/llvm-17/bin/clang" && \
307+
BUILD_CXX="/usr/lib/llvm-17/bin/clang++" && \
308+
BUILD_RESOURCE_INCLUDE="/usr/lib/llvm-17/lib/clang/17/include" && \
309+
echo "✓ Using system clang-17 for PyTorch build (matches libc++ 17)"; \
310+
else \
311+
echo "⚠ System clang-17 not found, falling back to Swift's clang" && \
312+
BUILD_CC="${SWIFT_TOOLCHAIN_DIR}/bin/clang" && \
313+
BUILD_CXX="${SWIFT_TOOLCHAIN_DIR}/bin/clang++" && \
314+
BUILD_RESOURCE_INCLUDE="${RESOURCE_INCLUDE}"; \
315+
fi; \
316+
fi && \
317+
CMAKE_CXX_FLAGS="-stdlib=libc++" && \
318+
if [ "$LIBCXX_SOURCE" = "Swift toolchain" ]; then \
319+
CMAKE_PREFIX_PATH="${LLVM_BASE_DIR};/usr"; \
320+
else \
321+
CMAKE_PREFIX_PATH="/usr/lib/llvm-17;/usr"; \
322+
fi && \
323+
echo "=== Build Configuration ===" && \
324+
echo "Compiler: ${BUILD_CC}" && \
325+
echo "C++ Compiler: ${BUILD_CXX}" && \
326+
echo "libc++ Source: ${LIBCXX_SOURCE}" && \
327+
echo "libc++ Include: ${LIBCXX_INCLUDE_DIR}" && \
328+
echo "libc++ Library: ${LIBCXX_LIBRARY_DIR}" && \
329+
echo "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}" && \
330+
echo "===========================" && \
331+
CC="${BUILD_CC}" CXX="${BUILD_CXX}" cmake .. \
332+
-DCMAKE_C_COMPILER="${BUILD_CC}" \
333+
-DCMAKE_CXX_COMPILER="${BUILD_CXX}" \
334+
-DCMAKE_CXX_STANDARD=17 \
335+
-DCMAKE_CXX_EXTENSIONS=OFF \
336+
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" \
337+
-DCMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR}" \
338+
-DCMAKE_SHARED_LINKER_FLAGS="-stdlib=libc++ -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR}" \
339+
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
340+
-DUSE_LIBCXX=ON \
341+
-DOpenMP_C_FLAGS="${OPENMP_C_FLAGS}" \
342+
-DOpenMP_CXX_FLAGS="${OPENMP_CXX_FLAGS}" \
343+
-DOpenMP_C_LIB_NAMES="libomp" \
344+
-DOpenMP_CXX_LIB_NAMES="libomp" \
345+
-DOpenMP_libomp_LIBRARY="${OMP_LIBRARY}" \
346+
-DBUILD_SHARED_LIBS=ON \
347+
-DCMAKE_BUILD_TYPE=Release \
348+
-DCMAKE_INSTALL_PREFIX=/opt/pytorch \
349+
-DBUILD_PYTHON=OFF \
350+
-DBUILD_TEST=OFF \
351+
-DBUILD_CAFFE2=OFF \
352+
-DUSE_DISTRIBUTED=OFF \
353+
-DUSE_MPS=OFF \
354+
-DUSE_CUDA=OFF \
355+
-DUSE_MKLDNN=OFF \
356+
-DUSE_XNNPACK=OFF \
357+
-DUSE_QNNPACK=OFF \
358+
-DUSE_FBGEMM=OFF \
359+
-DPYTHON_EXECUTABLE=$(which python3) \
360+
-D_GLIBCXX_USE_CXX11_ABI=1 \
361+
-GNinja
362362

363363
# # Stage 4: Build PyTorch (this is the resource-intensive step)
364364
# # Using MAX_JOBS=2 to avoid OOM on GitHub Actions runners (7GB RAM limit)
365365
# # Adding error logging to capture build failures
366-
# RUN set -ex && \
367-
# cd /tmp/pytorch/build && \
368-
# echo "Starting PyTorch build with MAX_JOBS=${MAX_JOBS}..." && \
369-
# cmake --build . --target install -j${MAX_JOBS} 2>&1 | tee /tmp/pytorch-build.log || \
370-
# (echo "=== BUILD FAILED ===" && \
371-
# echo "Last 100 lines of build log:" && \
372-
# tail -n 100 /tmp/pytorch-build.log && \
373-
# exit 1)
366+
RUN set -ex && \
367+
cd /tmp/pytorch/build && \
368+
echo "Starting PyTorch build with MAX_JOBS=${MAX_JOBS}..." && \
369+
cmake --build . --target install -j${MAX_JOBS} 2>&1 | tee /tmp/pytorch-build.log || \
370+
(echo "=== BUILD FAILED ===" && \
371+
echo "Last 100 lines of build log:" && \
372+
tail -n 100 /tmp/pytorch-build.log && \
373+
exit 1)
374374

375375
# Stage 5: Cleanup after PyTorch build
376376
# cmake --target install already installed to /opt/pytorch, so just cleanup
377-
# RUN rm -rf /tmp/pytorch /tmp/pytorch-build.log && \
378-
# echo "PyTorch installation complete" && \
379-
# echo "Verifying PyTorch library installation:" && \
380-
# ls -lh /opt/pytorch/lib/ | head -20
377+
RUN rm -rf /tmp/pytorch /tmp/pytorch-build.log && \
378+
echo "PyTorch installation complete" && \
379+
echo "Verifying PyTorch library installation:" && \
380+
ls -lh /opt/pytorch/lib/ | head -20
381381

382382
# Try with pre-build torch version
383-
RUN wget https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-2.8.0%2Bcpu.zip && \
384-
unzip libtorch-shared-with-deps-2.8.0+cpu.zip -d /opt/ && mv /opt/libtorch /opt/pytorch
383+
# RUN wget https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-2.8.0%2Bcpu.zip && \
384+
# unzip libtorch-shared-with-deps-2.8.0+cpu.zip -d /opt/ && mv /opt/libtorch /opt/pytorch
385385

386386
# Set up PyTorch library paths
387387
RUN echo "/opt/pytorch/lib" > /etc/ld.so.conf.d/pytorch.conf && \

0 commit comments

Comments
 (0)