연구실 세팅 작업

마지막 수정일자: 2024. 4. 2. 인공지능을 활용, 연구를 하면서 빼놓을 수 없는 것이 CUDA® 입니다. 그렇다면 CUDA는 무엇이고 이를 어떻게 활용할 수 있을까요? CUDA란 무엇인가? CUDA는 NVIDIA GPU를 통한 개발을 도와주는 라이브러리 입니다. 대다수의 인공지능의 계산은 부동소숫점에 병렬로 연산하는 것이 효과적이고 이를 GPU를 통해 동작시키는 것이 효과적이라는 것이 알려졌습니다. 그렇기 위해서는 GPU를 잘 동작시키고 최적화하는 작업이 필요합니다. 그렇지만 우리는 이러한 내용을 자세히 들여다 보고 직접 최적화 하기는 어렵지요. 그래서 등장한 것이 CUDA 라이브러리입니다. CUDA...

더보기

Shell 현명하게 사용하기

컴퓨터가 무언가 동작을 하기 위해서는 명령을 내려야 한다. 대부분은 그래픽으로 마우스를 움직이거나 (이 웹페이지를 보듯이요..!) 손가락으로 스크롤을 해서 보고는 한다. 그렇지만 서버와 같이 연산에 집중하는 경우 이러한 그래픽을 보여주기 보다는 쉘을 통해 명령을 내리게 된다. 영화나 만화에서 컴퓨터 검은화면에 키보드만 사용하는 것이 이러한 예시? 가 될 것이다. 실제로는 이러한 쉘 기반으로 명령을 내리는게 먼저였고, 이후에 마우스가 발명이 되면서 그래픽 기반의 운영체제가 접근성이 좋아지게 되었다. Shell script 쉘에 내리는 명령을 자동화 한 것 (ToDo…) bashrc? Shell에 접속할 때, ...

더보기

서버관리자를 위한 안내서 - 명령어

서버를 활용함에 있어서 우리는 여러 명령어를 통해 서버를 제어해야 합니다. 자주 활용되는 명령어들을 틈틈이 정리하고 있습니다. Ubuntu를 중심으로 서술을 진행하고자 합니다. 프로그램의 추가와 제거 다들 Windows 기반 환경에 대해서는 익숙하지만, 프로그램 설치의 경우 각 프로그램의 사이트에 들어가서 exe를 다운받아 실행하는 번거로운 과정을 거칠 것이다. 그렇지만 Mac 기반 환경을 사용한다면 brew install을 통해서 필요한 프로그램을 한 줄의 명령으로 설치할 수 있는 편리함이 있다. 비슷하게 Ubuntu에서도 apt를 통해 설치를 할 수 있다. 그리고 이러한 설치를 위한 의존성도 자동으로 해결하...

더보기

서버관리자를 위한 안내서 - 용어

(Note. 생각이 날 때 마다 추가하고는 있습니다. 부정확한 정보가 있다면 편히 알려주세요.) 서버 하드웨어 가장 이상적인 상황은 전문 업체에게 설계부터 시공까지 모든 것을 맡기는 방식입니다. 전원, 서버랙 관련 서버 랙: 서버와 서버에 필요한 모든 장비들을 수납하는 곳입니다. 서버실 사진을 보면 기다란 철제 캐비닛 같은 것들이 늘어서 있는데 이것이 서버 랙입니다. 보통은 연구실 마다 하나씩 할당이 됩니다. 서버랙의 깊이에 따라 종류가 나뉘게 됩니다. 학교 서버실마다 요구되는 사양이 다릅니다. 보통은 대학에서 충분한 양의 전력을 공급을 하고, 이에 맞는 시설을 준비해 줍니다. 그렇지만, GPU가 ...

더보기

세미나 운영에 관하여

들어가며 연구를 하는데 있어 지식을 공유하는 장소인 세미나는 반드시 필요해 보입니다. 목적이나 구성은 다양할 수 있겠습니다만, 논문을 같이 읽고 생각을 공유함으로써 새로운 방향으로 나아간다는 공통점이 있습니다. 이러한 내용을 이끌어나가기 위하여 우리는 어떻게 운영을 하면 좋을지에 대한 고민이 필요합니다. 많지는 않았지만 몇몇 세미나를 운영해본 경험에 의하면, 생각보다는 생각을 공유하기 어려울 수 있고, 한 사람만 이야기하고 끝나는 경우가 될 수 있습니다. 아마도 이러한 세미나 운영방식을 모아두면 도움이 되지 않을까 싶어 이 글을 작성하게 되었습니다. 실제로 수행해보기에는 인원이라던가… 시간이라던가… 어려움이 있...

더보기

GPU 모니터링

마지막 업데이트 2024. 9. 30. UID, GID 관련 내용 추가. 인공지능을 연구함에 있어 그래픽카드는 비싼 물건이면서, 반드시 필요한 물건이다. 중요한 만큼 관리도 열심히 해야하는데, 그래픽카드가 잘 돌아가고는 있는지, 알고보니 0번만 일하고 나머지가 놀고 있는지 모니터링이 필요할 것이다. 그렇지만, nvidia-smi를 출력하면 순간의 결과는 나오지만 이것이 누적되어서 관찰할 수는 없다. 그래서 모니터링을 하는 도구를 모아서 이쁘게 웹서비스를 통해 시작을 하여보자. 많은 내용을 Prometheus + Grafana + Docker Compose 설치에서 참고하였습니다. 저는 여기에 nvidia-s...

더보기

Zotero와 함께 논문을 읽고 정리하기

(마지막 수정, 23. 7. 4.) 들어가며 연구를 수행하면서 가장 많이 마주하게 되는 것은 글이다. 새로운 발견이 있다면 아마도 논문을 통해 가장 먼저 마주하게 될 것이고, 책을 통해서도 그 분야의 기초를 쌓을 수 있다. 또한 이를 통하여 우리는 새로운 논문을 작성하게 된다. 새로운 논문을 작성하면 기존의 논문을 “인용”하게 되는데, 하나 둘이면 모를까 논문이 수십 편 즈음 되기 시작하면 인용할 논문을 정리하기도 난감하다. 이러한 논문을 포함한 글을 참고하기에 도움이 되는 프로그램이 서지관리 소프트웨어이다. 서지관리 프로그램에 들어가기에 앞서, 유료로 제공되는 여러 도구들이 있다. EndNote, Mende...

더보기

서버관리자를 위한 안내서

동아리와 연구실, 서로 다른 목적을 가진 서버를 관리하고 운영해보면서 처음 들은 생각은 막막함이였다. 서버는 저기에 있고, 서버에 문제가 터지면 해결은 해야 하는데, 받을때마다 상황이 급박하게 되어 ID/PW 이상의 인수인계는 잘 받지는 못하였다. 다행히도, 나는 받고 나서 이것 저것 여쭈어보며 배울 기회는 있었지만 항상 이런 일이 있을거 같지는 않는다. 인터넷을 찾아보는 사람들을 위해, 또 나를 위해 최대한 서버를 관리하면서 생기는 일과 해결하는 방법을 정리해 남겨보고자 한다. The Missing Semester of Your CS Education Official MIT Course 한국어 번역 ...

더보기