brunch

You can make anything
by writing

C.S.Lewis

by Qscar Mar 04. 2024

Install MinkowskiEngine

with torch 2.2.1 and cuda 11.8

Background

ConvNext V2 논문을 읽고 코드 구현 및 테스트를 진행하던 중 FCMAE를 구현하는 과정에서 Sparse Tensor를 다루기 위한 라이브러리 및 모델 구조가 필요했습니다. torch를 이용해 구현해보려 했으나 colab을 통해 설치한 MinkowskiEngine Library로 구현한 레이어와 결과가 다르게 나오는 등의 문제가 있어 다른 대체재를 알아보려 했으나 그조차 미진한 부분이 있어 Minkowski Engine을 쓰는게 최선이라는 결론만이 내려졌네요.


다만 NVIDIA에서 배포한 MinkowskiEngine repo는 docker를 통해 설치가 가능했지만, convnext v2 구조 구현을 위한 depthwise convolution이 구현되어 있지 않았고, convnext v2의 저자이기도 한 shwoo93의 repo는 정상적인 설치가 안되는 문제가 발생해 이 두 레포를 적절히 합치고 약간의 수정을 해 설치를 완료했습니다.


본 포스팅은 공식 MinkowskiEngine 설치를 위한 내용 일부와 제가 수정한 버전 설치를 위한 내용 전반을 다루며, 이 과정에서 torch 2.2.1과 cuda 11.8버전을 활용합니다(그리 복잡한 내용은 아니라 자세하게 작성하지는 않았습니다. docker에 대한 간단한 활용능력이 요구되기는 하지만 이를 자세히 다루기엔 또 번거로워서 ㅎㅎ;). 이에 대한 코드 및 매뉴얼은 해당 github 및 readme 부분을 참조하는 것을 추천드립니다.


Install MinkowskiEngine

MinkowskiEngine을 설치하기 위한 과정은 다음과 같습니다.


| 1. github repo를 이용해 docker image로 굽기

| 2. 구워진 docker image를 활용해 도커 컨테이너 만들기


이를 좀 더 세분화한 과정 및 명령어는 아래와 같습니다. 브런치 스토리에서는 코드를 복사가능하게 임포트하는게 어려워 github readme를 직접 확인하는게 편합니다.

quickstart guide of readme


Build Docker Image

도커 이미지를 굽기 위한 Dockerfile의 내용은 아래와 같다. 만일 공식 버전으로 설치하고 싶다면 아래 이미지에서 내 github id인 leadbreak를 NVIDIA로 수정해서 적용하면 된다.

Dockerfile

위 Dockerfile은 여기를 통해 원본을 확인할 수 있습니다. 위 Dockerfile을 통해 torch 2.2.1 및 cuda 11.8, cudnn 8이 적용된 torch 공식 이미지를 가져와 필요한 패키지를 설치하고 제가 fork한 github repo를 가져와 MinkowskiEngine 설치를 진행합니다.


위 내용대로 Dockerfile을 생성했다면 아래와 같이 docker build를 진행해주면 됩니다. 아래는 제 github를 통째로 clone한뒤, Dockerfile이 위치한 경로로 들어가 build해주는 과정입니다.

Docker Image Build

이미 build를 했기에 빨리 끝났지만 실제로는 훨씬 더 오래 걸립니다. 이렇게 생성한 docker image를 활용해 docker container를 구축한 뒤, 내부에 들어가 확인하면 다음과 같이 minkowskiengine library가 정상적으로 설치된 것을 확인할 수 있습니다.


Check MinkowskiEngine Library

참고로 이러한 방법으로 설치를 완료하면 설치되는 python이 두 개로 나뉘게 되는데요, 하나는 conda를 통해 설치된 3.10.13이며, 다른 하나는 일반적인 방법으로 설치된 python 3.10.12입니다. 우리가 MinkowskiEngine을 설치한 곳은 conda를 통해 설치된 python이므로 코드를 실행하실 때, 이를 고려해야 하는 상황이 번거롭다면 3.10.12 버전 python을 삭제하고 사용하시는 것을 추천드립니다.

작가의 이전글 ConvNeXt V1
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari