본문 바로가기

Linux/Ubuntu10

Linux C/C++ shared library 컴파일하기 fPIC 옵션 GOT, PLT c++ g++ -shared -fPIC -o g++ -shared fPIC -o lib.so code.cpp c gcc -shared [-fPIC] -o gcc -shared [-fPIC] -o lib.so code.c -fPIC 생략가능 하지만 공유라이브러리를 만들 때는 -fPIC 옵션 사용을 권장합니다. (컴파일 종류에 따라서 -fPIC는 필수 옵션입니다.) fPIC를 사용하지 않을경우 재배치 기법을 사용하게 되는데, 간략하게 라이브러리의 주소를 현재 사용하려는 프로세스 주소에서 접근가능하게 재배치 한다는 개녑입니다. 단점은 1. 여러 프로세스가 공유라이버리를 공유하게되면 각 프로세스가 로드 할때마다 공유라이브러리의 text section(프로세스의 코드가 있는 영역)가 변해야하는데 이는 불가능하다... 2020. 2. 6.
Ubuntu 부팅시 자동실행 by rc.local $ sudo vi /etc/rc.local rc.local 파일에 실행하고 싶은 명령어를 넣습니다. 저는 스크립트를 실행하기위해서 코드를 짰습니다. 1줄의 #!/bin/sh는 sh 형식으로 스크립트(.sh)를 실행하겠다는 뜻입니다. (bash는 #!/bin/bash) 3줄에는 auto_jupyter.sh 라는 스크립트 파일을 실행시켰습니다. sudo chmod 755 /etc/rc.local 반드시 실행권한을 줍니다. 755는 equal effective User에게는 모든권한, 같은 그룹과 others에게는 읽기와 실행권한입니다. 자동실행시 권한이 없어 실패 할 수 있기 때문에 꼭 넣어 줍니다. (아마 실행(exec)권한이 없어서 안되는 거기 때문에 chmod +x /etc/rc.local 도 괜춘) .. 2020. 1. 17.
Ubuntu (우분투) cuda 9.0 설치, cudNN 설치 , tensorflow-gpu 설치 cuda는 nvidia 그래픽카드에 구동할 프로그램을 개발하고, 구동시킬 수 있는 툴입니다. 요즘 많은 인공지능 라이브러리들이 cuda를 통해 개발하였기에 사용하기 위해서는 설치가 필수입니다. 사용하려는 라이브러리마다 필요한 cuda의 버전이 제각각이므로 꼭!! 확인후에 걸맞는 cuda-version을 설치해야합니다. Pytorch를 그래픽카드 버전으로 설치하고 싶었으나.. 제 그래픽카드가 설치할 수 있는 driver-version은 390이 최대고, 이 드라이버는 cuda 9.1을 최대로 설치 할 수 있습니다. tensorflow의 경우도 1.13 버전 이후로는 cuda 10.0으로 지원하므로 tensorflow 1.12 이하 버전을 gpu버전으로 설치하기로하고, cuda 9.0을 설치하기로 했습니다... 2020. 1. 3.
Ubuntu(우분투) nvidia 드라이버 설치, 화면 부팅 안되는 현상 ubuntu에서 nvidia driver를 설치하는 많은 이유는 개발환경에 필요하기 때문일텐데요 특히 요즘에는 많은 인공지능 패키지, 오픈소스를 사용하기위해 cuda가 필요합니다. cuda는 nvidia 그래픽카드에서 돌아갈 수 있는 프로그램들을 개발하고 구동할 수 있게 해주는 tool입니다. 많은 인공지능 분야에서 성능을 높히기 위해 그래픽카드,tpu등의 하드웨어 보조를 받고있고 tensorflow, pytorch와 같은 오픈소스들도 cuda를 사용하여 만들곤 합니다. 하지만 각 패키지, 오픈소스들은 다른 버전의 cuda로 만들어졌기 때문에 cuda-version에 종속적인 경우가 대부분입니다. 또한 nvidia 그래픽카드에 따라 설치가능한 드라이버 버전의 상한이 존재하고 드라이브 버전에 따라 cuda.. 2020. 1. 3.