error : MXnet_libnccl.so.2

김동현·2023년 11월 9일

ML

목록 보기
1/2

MXnet

import mxnet as mx

오류 메세지

OSError                                   Traceback (most recent call last)
Input In [16], in <cell line: 2>()
      1 # import os
----> 2 import mxnet as mx

File ~/.local/lib/python3.9/site-packages/mxnet/__init__.py:23, in <module>
      1 #!/usr/bin/env python
      2 
      3 # Licensed to the Apache Software Foundation (ASF) under one
   (...)
     19 
     20 # coding: utf-8
     21 """MXNet: a concise, fast and flexible framework for deep learning."""
---> 23 from .context import Context, current_context, cpu, gpu, cpu_pinned
     24 from . import engine, error
     25 from .base import MXNetError

File ~/.local/lib/python3.9/site-packages/mxnet/context.py:23, in <module>
     21 import warnings
     22 import ctypes
---> 23 from .base import classproperty, with_metaclass, _MXClassPropertyMetaClass
     24 from .base import _LIB
     25 from .base import check_call

File ~/.local/lib/python3.9/site-packages/mxnet/base.py:356, in <module>
    354 __version__ = libinfo.__version__
    355 # library instance of mxnet
--> 356 _LIB = _load_lib()
    358 # type definitions
    359 mx_int = ctypes.c_int

File ~/.local/lib/python3.9/site-packages/mxnet/base.py:347, in _load_lib()
    345     lib = ctypes.CDLL(lib_path[0], winmode=0x00000008)
    346 else:
--> 347     lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL)
    348 # DMatrix functions
    349 lib.MXGetLastError.restype = ctypes.c_char_p

File /opt/tljh/user/lib/python3.9/ctypes/__init__.py:382, in CDLL.__init__(self, name, mode, handle, use_errno, use_last_error, winmode)
    379 self._FuncPtr = _FuncPtr
    381 if handle is None:
--> 382     self._handle = _dlopen(self._name, mode)
    383 else:
    384     self._handle = handle

OSError: libnccl.so.2: cannot open shared object file: No such file or directory

sudo 명령어를 사용할 수 없는 환경에서
dkpg 역시 불가능했고 다른 모델은 환경이었기 때문에 문제를 파악하기 어려웠습니다.

LLM에 물어봐도 도움이 되지 않는 대답 뿐이여서 문제를 해결하기가 더욱 어려웠습니다.

혹시 환경 자체에 문제가 생긴 것인지 테스트하고자 가상 환경에 torch를 install하였더니
문제가 해결되었습니다. '

어떻게 해결된 것인지 궁금하여 bard에게 질문하였고 응답을 기록하였습니다.

torch를 설치하기 전에 MXNet을 가져오려고 하면 MXNet이 NVIDIA GPU를 사용하기 위해 필요한 libnccl.so.2 공유 오브젝트 파일을 찾을 수 없습니다. 
이것이 OSError를 일으켰습니다.
torch를 설치하면 MXNet이 설치되어 있는지 감지합니다. 
torch는 MXNet이 libnccl.so.2 공유 오브젝트 파일을 필요로 한다는 것을 알고 있으므로 이 파일과 MXNet에 필요한 기타 누락된 라이브러리와 종속성을 자동으로 설치합니다.
torch를 설치한 후 MXNet을 다시 가져오려고 합니다. 
이번에는 MXNet이 libnccl.so.2 공유 오브젝트 파일과 기타 필요한 라이브러리를 찾을 수 있으므로 가져오기가 성공합니다.
요약하자면, torch 설치가 OSError를 해결한 이유는 MXNet이 제대로 작동하는 데 필요한 누락된 라이브러리와 종속성을 자동으로 설치했기 때문입니다.
profile
nice to meet you:)

0개의 댓글