2023년 1월 5일 목요일

[pytorch]CUDA11.2, CuDNN8.1.1, Ubuntu 20.04LTS에 pytorch 설치

 * CUDA11.2 버전에 적합한 pytorch를 설치해야 GPU 사용 가능

    - https://pytorch.org/get-started/locally/

    - 접속해서 아래와 같이 선택

    - 현재 서버의 CUDA 버전은 (nvcc -V 로 확인) 11.2 이지만 11.2에 적합한 pytorch는 몇몇 블로그를 확인해보니 아래와 같이 설치하라고 되어있음

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html

    - 하지만 위와 같이 해보니 pytorch를 불러오지 못함

    - 따라서 아래와 같이 CUDA 11.6 버전용 pytorch를 설치하고 기도메타 수행

1
 conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
     - python 실행 후 cuda가 연결되었는지 확인, True 로 나옴




또는

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html
와 같이 11.0에 맞는 pytorch 버전을 설치해도 됨 (현재 상태)
 - PIL 설치, numpy 버전 업을 추가로 수행해야 할 수도 있음


2021년 12월 13일 월요일

[Ubuntu]Convert로 eps 파일 png, jpg 등으로 변환

 * ImageMagick 설치 및 파일 변환

sudo apt install imagemagick

설치 후 ex1.eps 파일을 ex1.png 로 변환하려면

convert ex1.eps ex1.png

변환 시 다음과 같은 오류가 나오기도 함

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PS' @ error/constitute.c/IsCoderAuthorized/408.
convert-im6.q16: no images defined `ex1.png' @ error/convert.c/ConvertImageCommand/3258.


이 때는 
sudo vi /etc/ImageMagick-6/policy.xml

로 policy.xml 파일에서


rights="none" 로 되어 있는 부분을 위 사진처럼 rights="read | write" 로 변경해줘야 함



출처:https://askubuntu.com/questions/1181762/imagemagickconvert-im6-q16-no-images-defined

2021년 12월 7일 화요일

[RTX3090, Keras]RTX3090으로 Keras 사용하기

* Tensorflow 2.7 설치 

- RTX3090은 CUDA 11버전 이상만 사용 가능, 따라서 Tensorflow 2.5 버전 이상만 사용 가능

- 현재 출시된 Tensorflow 버전은 

https://www.tensorflow.org/install/source_windows#tested_build_configurations 에서 확인

- 2.7버전이 위 페이지에서는 확인 불가능하지만 실제 릴리즈되었으므로 2.7버전으로 설치

- Tensorflow 2.5버전은 Keras와 호환 문제가 있으며 Tensorflow 2.6버전은 업데이트 시기에 따라 Keras 2.6또는 2.7과 호환됨 (중간에 호환성 관련 오류를 수정하면서 버전이 서로 안 맞게 된 듯...)

- Tensorflow 2.7은 Keras 2.7과 호환되므로 Tensorflow 2.7을 설치

pip install tensorflow-gpu==2.7

- 위와 같이 설치하면 Keras 2.7도 함께 설치됨

- 케라스로 작성된 프로그램 실행 결과 아래와 같이 GPU를 사용하는 것으로 확인됨



참고: https://velog.io/@skyfishbae/RTX3090-2%EB%8C%80-Ubuntu-18.04-%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-2-Anaconda-Tensorflow-keras-%EC%84%A4%EC%B9%98


[RTX3090, Ubuntu]Nvidia 드라이버, cuda-toolkit, cuDNN 설치

 * Nvidia driver 설치
ubuntu-drivers devices
로 설치 가능한 driver 버전 확인
 
sudo apt install nvidia-driver-460
460버전 설치


* cuda-toolkit 설치

- RTX 3090은 CUDA 11 이상에서만 동작

- 12/8 현재 11.5 까지 출시되었지만 안정성을 고려하여 11.2.1을 설치함

(https://developer.nvidia.com/cuda-toolkit-archive)













- 11.2.1을 찾아 들어가서 환경에 맞게 선택하면 wget으로 다운 받는 방법과 설치 방법이 나와있음


wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run

sudo sh cuda_11.2.1_460.32.03_linux.run

- Driver 설치 할거냐고 나오면 x 제거해주면 됨 (위에서 이미 설치함)


* cuDNN 설치

https://developer.nvidia.com/rdp/cudnn-archive#a-collapse811-111

에 들어가서 다운 가능한 cuDNN 버전 확인 (11.2에 맞는 8.1.1으로 다운받음)


- 다운 받은 tar 파일을 압축 해제하고 
tar -xvf cudnn-11.2-linux-x64-v8.1.1.33.tgz

cuda 디렉토리로 파일 이동 후 사용 권한 변경하기
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

cudnn 버전 확인 (CUDNN_MAJOR 8 MINOR 1 출력 되어야 함)
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2


* 환경변수 설정

.bashrc에 아래 환경변수 추가

export PATH=/usr/local/cuda-11.1/bin
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH

참고: https://velog.io/@skyfishbae/RTX3090-2%EB%8C%80-Ubuntu-18.04-%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-1-Nvidia-driver-Cuda-cuDNN-%EC%84%A4%EC%B9%98

2021년 12월 6일 월요일

[Ubuntu]iptime 공유기로 포트포워딩

* iptime 공유기로 포트포워딩 하여 ssh 접속하기

- https://kithub.tistory.com/entry/Network-port-forwarding 참조

- iptime 로그인 (192.168.0.1)

- '인터넷 연결 설정' 에서 네트워크 관련 세부내용 확인

- 발급 받은 고정 ip 입력 (ex. 120.111.111.10)

- '고급설정'-'NAT/라우터관리'-'포트포워드 설정에서

   > 규칙 이름 입력, 내부 ip 주소: 192.168.0.5 (원하는 것 입력)

   > 프로토콜: TCP, 외부포트: 8022 (원하는 포트, 다른 포트랑 안겹치게), 내부포트: 22

   > 적용하면 외부에서 ssh를 이용해 8022포트로 접속 시 내부 192.168.0.5 port22로 접속됨

- 리눅스 머신(a)에 랜 연결 후 ip, 게이트웨이 등 설정 (192.168.0.5)

- port 22번 열기 (netstat -nap 후 tcp에 0.0.0.0:22 LISTEN이라고 되어 있으면 열린 것)


- 다른 머신(b)에서 ssh -X id@120.111.111.10 -p 8022 입력하면 외부로 열려있는 8022포트를 이용해서 내부 22번 포트로 접속함


- 혹시 오류 메시지가 나오면 

  a 머신의 방화벽 문제일 수 있으니 ufw 에 22번 포트 열어주는 설정 하고 ufw 재시작

  a 머신에 openssh가 제대로 설치 안되어 있을 수도 있으니 openssh 제거 후 다시 설치

 


2021년 6월 22일 화요일

[Ubuntu]콘솔에서 상대 경로 표시

 * Ubuntu 설치 후 콘솔을 보면 기본적으로 해당 폴더의 절대 경로를 표시해줌

   폴더 경로가 길어지면 콘솔을 보기가 불편함

   따라서 필요하다면 상대 경로로 표시 할 필요가 있음


 * ~/.bashrc 를 수정해야 함

 



bashrc의 절대 경로 표시 부분 (소문자 w로 적힌 부분)








bashrc에서 소문자 w를 대문자 W로 변경 (60줄, 62줄 모두 변경)

bashrc 저장 후 source .bashrc 해주면 됨 (또는 로그아웃 후 재로그인)


2020년 10월 11일 일요일

[Linux]4TB 이상 하드디스크 마운트

 https://blog.dalso.org/uncategorized/813


/dev/sdb 를 /data1

/dev/sdc 를 /data2 에 각각


mount /dev/sdb /data1 같이 마운트 시킴