mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
fixes for cuda centos/manylinux (#7830)
* fixes for cuda centos/manylinux * remove providers_shared.so dep processing.
This commit is contained in:
parent
f78af4fc8c
commit
1c6b6f696e
2 changed files with 25 additions and 7 deletions
26
setup.py
26
setup.py
|
|
@ -134,19 +134,33 @@ try:
|
|||
logger.info('copying %s -> %s', source, dest)
|
||||
copyfile(source, dest)
|
||||
result = subprocess.run(['patchelf', '--print-needed', dest], check=True, stdout=subprocess.PIPE, universal_newlines=True)
|
||||
cuda_dependencies = ['libcublas.so', 'libcudnn.so', 'libcudart.so', 'libcurand.so', 'libcufft.so', 'libnvToolsExt.so']
|
||||
cuda_dependencies.extend(['librccl.so', 'libamdhip64.so', 'librocblas.so', 'libMIOpen.so', 'libhsa-runtime64.so', 'libhsakmt.so'])
|
||||
dependencies = ['librccl.so', 'libamdhip64.so', 'librocblas.so', 'libMIOpen.so', 'libhsa-runtime64.so', 'libhsakmt.so']
|
||||
to_preload = []
|
||||
args = ['patchelf', '--debug']
|
||||
for line in result.stdout.split('\n'):
|
||||
for dependency in cuda_dependencies:
|
||||
for dependency in dependencies:
|
||||
if dependency in line:
|
||||
to_preload.append(line)
|
||||
args.extend(['--remove-needed', line])
|
||||
args.append(dest)
|
||||
if len(to_preload) > 0:
|
||||
if len(args) > 3:
|
||||
subprocess.run(args, check=True, stdout=subprocess.PIPE)
|
||||
self._rewrite_ld_preload(to_preload)
|
||||
|
||||
dest = 'onnxruntime/capi/libonnxruntime_providers_cuda.so'
|
||||
if path.isfile(dest):
|
||||
result = subprocess.run(['patchelf', '--print-needed', dest], check=True, stdout=subprocess.PIPE, universal_newlines=True)
|
||||
cuda_dependencies = ['libcublas.so', 'libcublasLt.so', 'libcudnn.so', 'libcudart.so', 'libcurand.so', 'libcufft.so', 'libnvToolsExt.so']
|
||||
args = ['patchelf', '--debug']
|
||||
for line in result.stdout.split('\n'):
|
||||
for dependency in cuda_dependencies:
|
||||
if dependency in line:
|
||||
if not dependency in to_preload:
|
||||
to_preload.append(line)
|
||||
args.extend(['--remove-needed', line])
|
||||
args.append(dest)
|
||||
if len(args) > 3:
|
||||
subprocess.run(args, check=True, stdout=subprocess.PIPE)
|
||||
self._rewrite_ld_preload(to_preload)
|
||||
_bdist_wheel.run(self)
|
||||
if is_manylinux:
|
||||
file = glob(path.join(self.dist_dir, '*linux*.whl'))[0]
|
||||
|
|
@ -165,6 +179,7 @@ except ImportError as error:
|
|||
# Additional binaries
|
||||
if platform.system() == 'Linux':
|
||||
libs = ['onnxruntime_pybind11_state.so', 'libdnnl.so.2', 'libmklml_intel.so', 'libmklml_gnu.so', 'libiomp5.so', 'mimalloc.so']
|
||||
dl_libs = ['libonnxruntime_providers_shared.so', 'libonnxruntime_providers_cuda.so']
|
||||
# DNNL, TensorRT & OpenVINO EPs are built as shared libs
|
||||
libs.extend(['libonnxruntime_providers_shared.so'])
|
||||
libs.extend(['libonnxruntime_providers_dnnl.so'])
|
||||
|
|
@ -201,6 +216,7 @@ else:
|
|||
|
||||
if is_manylinux:
|
||||
data = ['capi/libonnxruntime_pywrapper.so'] if nightly_build else []
|
||||
data += [path.join('capi', x) for x in dl_libs if path.isfile(path.join('onnxruntime', 'capi', x))]
|
||||
ext_modules = [
|
||||
Extension(
|
||||
'onnxruntime.capi.onnxruntime_pybind11_state',
|
||||
|
|
|
|||
|
|
@ -46,8 +46,10 @@ then
|
|||
# Add custom lib
|
||||
cp $BINARY_DIR/$BUILD_CONFIG/libcustom_op_library.so $BINARY_DIR/$ARTIFACT_NAME
|
||||
# Add cuda provider if it exists
|
||||
cp $BINARY_DIR/$BUILD_CONFIG/$LIB_NAME $BINARY_DIR/$ARTIFACT_NAME/$NATIVE_FOLDER/libonnxruntime_providers_shared.so
|
||||
cp $BINARY_DIR/$BUILD_CONFIG/$LIB_NAME $BINARY_DIR/$ARTIFACT_NAME/$NATIVE_FOLDER/libonnxruntime_providers_cuda.so
|
||||
if [[ -f "$BINARY_DIR/$BUILD_CONFIG/libonnxruntime_providers_cuda.so" ]]; then
|
||||
cp $BINARY_DIR/$BUILD_CONFIG/libonnxruntime_providers_shared.so $BINARY_DIR/$ARTIFACT_NAME/$NATIVE_FOLDER/libonnxruntime_providers_shared.so
|
||||
cp $BINARY_DIR/$BUILD_CONFIG/libonnxruntime_providers_cuda.so $BINARY_DIR/$ARTIFACT_NAME/$NATIVE_FOLDER/libonnxruntime_providers_cuda.so
|
||||
fi
|
||||
fi
|
||||
|
||||
find $BINARY_DIR/$ARTIFACT_NAME -ls
|
||||
|
|
|
|||
Loading…
Reference in a new issue