Skip to content

Commit 4a971e6

Browse files
mc-nvTabrizian
andauthored
Update libraries path for PyTorch backend (#86)
* Update 'libtorch' dependencies list * Update libraries and versions to sutisfy the dependency needs * Update library path * Remove ilp64 and iomp5 from build (#85) * Update library path * Remove ilp64 and iomp5 from build Co-authored-by: Misha Chornyi <[email protected]> Co-authored-by: Iman Tabrizian <[email protected]>
1 parent f85fbab commit 4a971e6

File tree

1 file changed

+56
-47
lines changed

1 file changed

+56
-47
lines changed

CMakeLists.txt

Lines changed: 56 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -155,23 +155,22 @@ endif() # TRITON_PYTORCH_ENABLE_TORCHTRT
155155

156156
if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
157157
set(LIBS_ARCH "aarch64")
158-
set(CONDA_LIBS
158+
set(LIBTORCH_LIBS
159159
"libopenblas.so.0"
160160
)
161161
else()
162162
set(LIBS_ARCH "x86_64")
163-
set(CONDA_LIBS
164-
"libmkl_core.so"
165-
"libmkl_gnu_thread.so"
166-
"libmkl_intel_lp64.so"
167-
"libmkl_intel_thread.so"
168-
"libmkl_def.so"
169-
"libmkl_vml_def.so"
170-
"libmkl_rt.so"
171-
"libmkl_avx2.so"
172-
"libmkl_avx512.so"
173-
"libmkl_sequential.so"
174-
"libomp.so"
163+
set(LIBTORCH_LIBS
164+
"libmkl_avx2.so.1"
165+
"libmkl_avx512.so.1"
166+
"libmkl_core.so.1"
167+
"libmkl_def.so.1"
168+
"libmkl_gnu_thread.so.1"
169+
"libmkl_intel_lp64.so.1"
170+
"libmkl_intel_thread.so.1"
171+
"libmkl_rt.so.1"
172+
"libmkl_sequential.so.1"
173+
"libmkl_vml_def.so.1"
175174
)
176175
endif()
177176
set(OPENCV_LIBS
@@ -180,7 +179,10 @@ set(OPENCV_LIBS
180179
"libopencv_highgui.so"
181180
"libopencv_imgcodecs.so"
182181
"libopencv_imgproc.so"
183-
"libopencv_core.so"
182+
"libopencv_core.so"
183+
"libopencv_calib3d.so"
184+
"libopencv_flann.so"
185+
"libopencv_features2d.so"
184186
"libpng16.so"
185187
"libjpeg.so"
186188
)
@@ -189,12 +191,12 @@ set(OPENCV_LIBS
189191
# Without these, the framework/backend complains of missing libraries / symbols and
190192
# in some cases leads to segmentation faults.
191193
if (${TRITON_PYTORCH_DOCKER_BUILD})
192-
string(REPLACE ";" " " CONDA_LIBS_STR "${CONDA_LIBS}")
194+
string(REPLACE ";" " " LIBTORCH_LIBS_STR "${LIBTORCH_LIBS}")
193195

194196
add_custom_command(
195197
OUTPUT
196198
${PT_LIBS}
197-
${CONDA_LIBS}
199+
${LIBTORCH_LIBS}
198200
${OPENCV_LIBS}
199201
LICENSE.pytorch
200202
include/torch
@@ -203,43 +205,47 @@ if (${TRITON_PYTORCH_DOCKER_BUILD})
203205
COMMAND docker pull ${TRITON_PYTORCH_DOCKER_IMAGE}
204206
COMMAND docker rm pytorch_backend_ptlib || echo "error ignored..." || true
205207
COMMAND docker create --name pytorch_backend_ptlib ${TRITON_PYTORCH_DOCKER_IMAGE}
206-
COMMAND /bin/sh -c "for i in ${CONDA_LIBS_STR} ; do echo copying $i && docker cp -L pytorch_backend_ptlib:/opt/conda/lib/$i $i ; done"
207-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libc10.so libc10.so
208-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libc10_cuda.so libc10_cuda.so
209-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libtorch.so libtorch.so
210-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cpu.so libtorch_cpu.so
211-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so libtorch_cuda.so
212-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/lib/libtorch_global_deps.so libtorch_global_deps.so
213-
COMMAND docker cp pytorch_backend_ptlib:/opt/pytorch/vision/build/libtorchvision.so libtorchvision.so
214-
COMMAND /bin/sh -c "if [ ${TRITON_PYTORCH_ENABLE_TORCHTRT} = 'ON' ]; then docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch_tensorrt/lib/libtorchtrt_runtime.so libtorchtrt_runtime.so; fi"
215-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch_tensorrt/bin/torchtrtc torchtrtc || echo "error ignored..." || true
208+
COMMAND /bin/sh -c "for i in ${LIBTORCH_LIBS_STR} ; do echo copying $i && docker cp -L pytorch_backend_ptlib:/usr/local/lib/$i $i ; done"
209+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libc10.so libc10.so
210+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libc10_cuda.so libc10_cuda.so
211+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libtorch.so libtorch.so
212+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libtorch_cpu.so libtorch_cpu.so
213+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libtorch_cuda.so libtorch_cuda.so
214+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libtorch_global_deps.so libtorch_global_deps.so
215+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/lib/libcaffe2_nvrtc.so libcaffe2_nvrtc.so
216+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/libtorchvision.so libtorchvision.so
217+
COMMAND /bin/sh -c "if [ ${TRITON_PYTORCH_ENABLE_TORCHTRT} = 'ON' ]; then docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch_tensorrt/lib/libtorchtrt_runtime.so libtorchtrt_runtime.so; fi"
218+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch_tensorrt/bin/torchtrtc torchtrtc || echo "error ignored..." || true
216219
COMMAND docker cp pytorch_backend_ptlib:/opt/pytorch/pytorch/LICENSE LICENSE.pytorch
217-
COMMAND docker cp pytorch_backend_ptlib:/opt/conda/lib/python3.8/site-packages/torch/include include/torch
220+
COMMAND docker cp pytorch_backend_ptlib:/usr/local/lib/python3.8/dist-packages/torch/include include/torch
218221
COMMAND docker cp pytorch_backend_ptlib:/opt/pytorch/pytorch/torch/csrc/jit/codegen include/torch/torch/csrc/jit/.
219222
COMMAND docker cp pytorch_backend_ptlib:/opt/pytorch/vision/torchvision/csrc include/torchvision/torchvision
220-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_videoio.so.3.4.11 libopencv_videoio.so
221-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_highgui.so.3.4.11 libopencv_highgui.so
222-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_video.so.3.4.11 libopencv_video.so
223-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_imgcodecs.so.3.4.11 libopencv_imgcodecs.so
224-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_imgproc.so.3.4.11 libopencv_imgproc.so
225-
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libopencv_core.so.3.4.11 libopencv_core.so
223+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_videoio.so libopencv_videoio.so
224+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_highgui.so libopencv_highgui.so
225+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_video.so libopencv_video.so
226+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_imgcodecs.so libopencv_imgcodecs.so
227+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_imgproc.so libopencv_imgproc.so
228+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_core.so libopencv_core.so
229+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_calib3d.so libopencv_calib3d.so
230+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_features2d.so libopencv_features2d.so
231+
COMMAND docker cp -L pytorch_backend_ptlib:/usr/local/lib/libopencv_flann.so libopencv_flann.so
226232
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libpng16.so.16.37.0 libpng16.so
227233
COMMAND docker cp pytorch_backend_ptlib:/usr/lib/${LIBS_ARCH}-linux-gnu/libjpeg.so.8.2.2 libjpeg.so
228-
COMMAND /bin/sh -c "if [ -f libmkl_def.so ]; then patchelf --add-needed libmkl_gnu_thread.so libmkl_def.so; fi"
229-
COMMAND /bin/sh -c "if [ -f libmkl_def.so ]; then patchelf --add-needed libmkl_core.so libmkl_def.so; fi"
230-
COMMAND /bin/sh -c "if [ -f libmkl_avx2.so ]; then patchelf --add-needed libmkl_gnu_thread.so libmkl_avx2.so; fi"
231-
COMMAND /bin/sh -c "if [ -f libmkl_avx2.so ]; then patchelf --add-needed libmkl_core.so libmkl_avx2.so; fi"
232-
COMMAND /bin/sh -c "if [ -f libmkl_avx512.so ]; then patchelf --add-needed libmkl_gnu_thread.so libmkl_avx512.so; fi"
233-
COMMAND /bin/sh -c "if [ -f libmkl_avx512.so ]; then patchelf --add-needed libmkl_core.so libmkl_avx512.so; fi"
234-
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so ]; then patchelf --add-needed libmkl_gnu_thread.so libmkl_vml_def.so; fi"
235-
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so ]; then patchelf --add-needed libmkl_intel_thread.so libmkl_vml_def.so; fi"
236-
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so ]; then patchelf --add-needed libmkl_core.so libmkl_vml_def.so; fi"
237-
COMMAND /bin/sh -c "if [ -f libmkl_intel_thread.so ]; then patchelf --add-needed libmkl_intel_lp64.so libmkl_intel_thread.so; fi"
234+
COMMAND /bin/sh -c "if [ -f libmkl_def.so.1 ]; then patchelf --add-needed libmkl_gnu_thread.so.1 libmkl_def.so.1; fi"
235+
COMMAND /bin/sh -c "if [ -f libmkl_def.so.1 ]; then patchelf --add-needed libmkl_core.so.1 libmkl_def.so.1; fi"
236+
COMMAND /bin/sh -c "if [ -f libmkl_avx2.so.1 ]; then patchelf --add-needed libmkl_gnu_thread.so.1 libmkl_avx2.so.1; fi"
237+
COMMAND /bin/sh -c "if [ -f libmkl_avx2.so.1 ]; then patchelf --add-needed libmkl_core.so.1 libmkl_avx2.so.1; fi"
238+
COMMAND /bin/sh -c "if [ -f libmkl_avx512.so.1 ]; then patchelf --add-needed libmkl_gnu_thread.so.1 libmkl_avx512.so.1; fi"
239+
COMMAND /bin/sh -c "if [ -f libmkl_avx512.so.1 ]; then patchelf --add-needed libmkl_core.so.1 libmkl_avx512.so.1; fi"
240+
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so.1 ]; then patchelf --add-needed libmkl_gnu_thread.so.1 libmkl_vml_def.so.1; fi"
241+
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so.1 ]; then patchelf --add-needed libmkl_intel_thread.so.1 libmkl_vml_def.so.1; fi"
242+
COMMAND /bin/sh -c "if [ -f libmkl_vml_def.so.1 ]; then patchelf --add-needed libmkl_core.so.1 libmkl_vml_def.so.1; fi"
243+
COMMAND /bin/sh -c "if [ -f libmkl_intel_thread.so.1 ]; then patchelf --add-needed libmkl_intel_lp64.so.1 libmkl_intel_thread.so.1; fi"
238244
COMMAND docker rm pytorch_backend_ptlib
239245
COMMENT "Extracting pytorch and torchvision libraries and includes from ${TRITON_PYTORCH_DOCKER_IMAGE}"
240246
VERBATIM
241247
)
242-
add_custom_target(ptlib_target DEPENDS ${PT_LIBS} ${CONDA_LIBS} ${OPENCV_LIBS})
248+
add_custom_target(ptlib_target DEPENDS ${PT_LIBS} ${LIBTORCH_LIBS} ${OPENCV_LIBS})
243249
add_library(ptlib SHARED IMPORTED GLOBAL)
244250
add_dependencies(ptlib ptlib_target)
245251

@@ -405,7 +411,7 @@ install(
405411

406412
if (${TRITON_PYTORCH_DOCKER_BUILD})
407413
set(PT_LIB_PATHS "")
408-
FOREACH(plib ${PT_LIBS} ${CONDA_LIBS} ${OPENCV_LIBS})
414+
FOREACH(plib ${PT_LIBS} ${LIBTORCH_LIBS} ${OPENCV_LIBS})
409415
set(PT_LIB_PATHS ${PT_LIB_PATHS} "${CMAKE_CURRENT_BINARY_DIR}/${plib}")
410416
ENDFOREACH(plib)
411417

@@ -424,7 +430,7 @@ if (${TRITON_PYTORCH_DOCKER_BUILD})
424430
)
425431
endif() # TRITON_PYTORCH_ENABLE_TORCHTRT
426432

427-
FOREACH(plib ${PT_LIBS} ${CONDA_LIBS} ${OPENCV_LIBS})
433+
FOREACH(plib ${PT_LIBS} ${LIBTORCH_LIBS} ${OPENCV_LIBS})
428434
install(
429435
CODE
430436
"EXECUTE_PROCESS(
@@ -437,7 +443,7 @@ if (${TRITON_PYTORCH_DOCKER_BUILD})
437443
)
438444
ENDFOREACH(plib)
439445

440-
set(OPENCV_VERSION "3.4")
446+
set(OPENCV_VERSION "406")
441447
install(
442448
CODE
443449
"EXECUTE_PROCESS(
@@ -447,6 +453,9 @@ if (${TRITON_PYTORCH_DOCKER_BUILD})
447453
COMMAND ln -sf libopencv_imgcodecs.so libopencv_imgcodecs.so.${OPENCV_VERSION}
448454
COMMAND ln -sf libopencv_imgproc.so libopencv_imgproc.so.${OPENCV_VERSION}
449455
COMMAND ln -sf libopencv_core.so libopencv_core.so.${OPENCV_VERSION}
456+
COMMAND ln -sf libopencv_calib3d.so libopencv_calib3d.so.${OPENCV_VERSION}
457+
COMMAND ln -sf libopencv_features2d.so libopencv_features2d.so.${OPENCV_VERSION}
458+
COMMAND ln -sf libopencv_flann.so libopencv_flann.so.${OPENCV_VERSION}
450459
COMMAND ln -sf libpng16.so libpng16.so.16
451460
COMMAND ln -sf libjpeg.so libjpeg.so.8
452461
RESULT_VARIABLE LINK_STATUS

0 commit comments

Comments
 (0)