소개
인하대학교 인공지능융합연구센터 (이하 ”AI 센터”)에 오신 것을 환영합니다. 저희 AI 센터는 최첨단 GPU 서버 센터를 구축하여 A100, A6000, A40 등의 고성능 컴퓨팅 자원을 인하대학교 학생 및 교수님들, 그리고 기업체 및 인천시민 여러분께 무상으로 제공하고 있습니다. 이를 통해 인공지능 연구와 개발에 필요한 모든 고성능 계산 작업을 지원하고자 합니다.
작성된 튜토리얼을 통해 원활한 사용과 연구에 도움이 되기를 진심으로 바라겠습니다.
System Overview
Simple Linux Utility for Resource Management (이하 “Slurm”) 을 통해 GPU 자원을 제공하고 있습니다. Slurm은 클러스터 환경의 자원 관리 시스템으로, 사용자의 요청에 컴퓨팅 자원을 할당합니다.
사용자는 자원을 할당 받은 후, Conda와 Singularity 컨테이너 솔루션을 통해 사용자가 원하는 개발 환경에서 컴퓨팅 자원을 사용 할 수 있습니다.
자원이 모두 사용 중일 때는 대기를 해야하며, 자원이 확보될 시 Slurm이 대기하고 있던 사용자에게 할당해줍니다.
GPU 보유 현황
AI 센터에서는 11개의 GPU 서버 (56 GPUs) 를 제공하고 있습니다.
| GPU 타입 | GPU 메모리 | GPU 서버 대수 | 서버 당 GPU 카드 개수 |
|---|---|---|---|
| A100 | 40 GB | 4 | 4 |
| A40 | 48 GB | 3 | 8 |
| A6000 | 48 GB | 4 | 4 |
사용 방법
사용 절차
GPU 서버 사용 과정은 아래와 같습니다:
SSH 로그인을 통한 서버 접속 (Login Node) -> 코드 및 데이터 업로드 -> GPU 자원 신청 -> (환경 구축) -> GPU 사용
- 사용 가이드 영상
GPU 서버 접속
본인의 ID로 입력하여 SSH 연결하시길 바랍니다. 만약 본인의 ID가 "Gildong"이면,
ssh Gildong@165.xxx.xxx.xxx # IP 주소 정보를 모를 경우, 이메일 주세요.
사용자는 SSH 연결을 통해 Login Node 에 접속한 후, Slurm 시스템에게 GPU 자원 할당을 신청 할 수 있습니다.
SSH 연결은 Windows PowerShell, Ubuntu Terminal, MobaXterm 등의 프로그램을 통해 사용 할 수 있습니다.

코드 및 데이터 업로드
파일 업로드는 본인 계정의 이름으로 된 폴더에 할 수 있습니다.
파일 업로드는 GPU 자원을 할당 받지 않고도 가능합니다.
- 데이터 업로드는 /shared/home/[본인 아이디] 경로 아래에 하시면 됩니다.
- 데이터 및 코드는 AI 센터의 NAS에 업로드됩니다.
자원 신청
사용자는 원하는 시간, GPU 및 CPU 자원 등을 명시하여 요청할 수 있습니다. 자원 요청 시 이메일을 기입하면, 자원을 할당받았을 때 이메일 알람을 받을 수 있습니다. 최대 7일의 사용 시간을 요청 할 수 있으며, 사용자들의 원활한 사용을 위해 AI센터에서는 사용 시간을 모니터링하고 있습니다.
지속적으로 자원 요청 정책을 지키지 않는 사용자의 경우, 작업의 취소 및 패널티가 부과 될 수 있습니다.
먼저 명령어로 자신의 파티션을 확인하기 (주의: `는 ' 와 다름)
sacctmgr show assoc format=User,Partition where user=`whoami`
파티션 p1의 사용자가 A100 GPU 2개를 1일 동안 요청하기
srun --gres=gpu:a100:2 -p p1 --time=1-00:00:00 -J cv_lab1 --mail-type=ALL --mail-user=your.email@inha.edu --cpus-per-task=20 --pty bash
파티션 p2의 사용자가 sv4ka-n2 노드의 A6000 GPU 2개를 12시간 동안 요청하기
srun --gres=gpu:a6000:2 -p p2 --time=12:00:00 -J cv_lab1 --mail-type=ALL --mail-user=your.email@inha.edu -w sv4ka-n2 --pty bash
파티션 p3의 사용자가 A40 GPU 2개를 2일 동안 요청하기
srun --gres=gpu:a40:2 -p p3 --time=2-00:00:00 -J cv_lab1 --mail-type=ALL --mail-user=your.email@inha.edu --pty bash
로그인을 한 후, 명령어로 GPU 할당 요청이 가능합니다.
srun --gres=gpu:<type>:<number> -w <node name> -p <partition> --time=<time> -J <jobname> --mail-type=ALL --mail-user=<email> --cpus-per-core <int> --pty bash
| 옵션 이름 | 구분 | 설명 | 상세 |
|---|---|---|---|
--gres=gpu:<type>:<number> |
GPU 선택 | GPU 타입 및 개수를 선택 | <type> : a100, a6000, a40 <number> : 1 ~ 4 사이의 정수(a40은 3까지) |
-p <partition> |
파티션 선택 | 사용자마다 파티션 지정됨 | <partition> : p1, p2, p3 아래 명령어로 자신이 속한 파티션 확인 sacctmgr show assoc format=User,Partition where user=`whoami` |
--time=<time> |
사용 시간 설정 | 사용 시간을 <time>만큼 지정 |
7일 (7-00:00:00) 또는 168시간 (168:00:00) 이하의 시간 |
-J <jobname> |
작업 이름 설정 | 작업의 이름을 <jobname>으로 설정 |
|
--mem <memory size> |
메모리 설정 | 사용하고자 하는 memory 자원 크기를 설정 | --mem 8G 와 같이 설정할 수 있음. |
-w <node name> |
GPU 노드 설정 | 신청하고자 하는 노드 직접 지정 | A100: a100-n1, a100-n2, a100-n3, a100-n4 A6000: sv4ka-n1, sv4ka-n2, sv4ka-n3, sv4ka-n4 A40: sv8ka-n1, sv8ka-n2, sv8ka-n3 (파티션별 신청 가능한 자원 상이 ※사용정책 참고) |
--mail-type=ALL |
메일 알림 설정 | 작업 상태(시작, 종료, 실패) 알림 수신 | |
--mail-user=<email> |
메일 주소 설정 | 알림을 받을 이메일 주소 입력 | your.email@example.com (inha.edu, inha.ac.kr 도메인만 됩니다) |
- 자원 할당이 되었을경우

위와같이 host명이 login-n1에서 신청한 node의 이름으로 변경됨
- 자원 할당 대기중일 경우

사용자가 많을 경우, 위와 같이 할당대기중이라는 안내가 나옴.
대기열 상태 확인
srun 또는 sbatch로 신청한 자원이 이미 사용되고 있을경우, 대기열에 들어갑니다. 이때 대기열을 확인하고싶다면 우측 명령어를 사용하면 됩니다.
신청한 작업의 ID를 squeue 명령어를 통해 확인하기(대기열 현황)
squeue
예상 시작시간 확인하기
scontrol show job [JOB ID] | grep StartTime
실행중인 모든 작업의 시작시간(StartTime), 종료시간(EndTime) 확인
scontrol show job | grep -e JobName -e StartTime
- 신청 가능한 자원 개수 확인하기
show-"확인하고자 하는 node 이름" 명령어로, 해당 node의 유휴자원 개수를 확인할 수 있습니다. Node이름은 a100, a40, a6000 3가지가 있습니다.
심화 튜토리얼
tmux를 이용한 세션유지
srun 명령어를 사용하여 자원을 받고나서 세션을 종료하면, 자원도 자동으로 반환됩니다. 이를 방지하고싶다면, tmux 또는 screen명령어로 세션을 유지할 수 있습니다.
tmux 실행
tmux

tmux 세션 유지 상태로 나가기 (백그라운드에서 실행시키고 싶은경우)
ctrl + b 를 누른후, d키를 누르기
tmux 세션 리스트 확인
tmux ls
tmux 목록중 원하는 세션에 다시 접속하기
tmux attach-session -t <session number>
tmux session을 완전히 종료하기
tmux kill-session -t <session number>

JupyterHub를 통한 GPU 서버 사용
JupyterHub란?

JupyterHub는 브라우저에서 GPU 서버에 접속해 JupyterLab과 VS Code를 사용할 수 있는 플랫폼입니다. "Start My Server"를 클릭하면 GPU/CPU/메모리가 자동으로 할당됩니다. 할당된 자원 범위 안에서만 작업이 실행되므로, 다른 사용자의 작업에 영향을 주지 않습니다.

OS 업그레이드 안내
서버 OS를 Ubuntu 20.04 → 24.04로 업그레이드하였습니다.
기존 데이터는 /shared/home/(계정ID)/ 경로 그대로 유지됩니다.
JupyterHub 접속
URL: https://aix-gpu.inha.ac.kr/

- 위 링크로 접속 후 AI Center 서버 계정(Slurm)으로 로그인
- SSL 인증서 경고가 뜨면 "계속 진행" 클릭 (자체 서명 인증서이므로 정상)

Named Server는 JupyterHub 내에서 여러 Slurm 잡을 이름으로 구분하여 독립적으로 관리하는 기능으로, 각 Named Server는 별도의 Slurm 잡으로 실행되며 GPU를 각각 할당받습니다.
서버 생성 절차
Step 1. Named Server 추가
- 로그인 후 좌측 상단 Home 클릭
Name your server입력란에 식별 가능한 이름 입력

- 예시:
train_a100,dev_a6000,sujin_실험1
- Add New Server 버튼 클릭
Step 2. 자원 선택

| 항목 | 설명 | 예시 |
|---|---|---|
| 파티션 | 소속 파티션 직접 입력 | p1, p2, aicenter |
| GPU 타입 | 노드 종류 선택 | A6000 / A40 / A100 |
| GPU 수 | 필요한 GPU 개수 | 1 |
| CPU / 메모리 | GPU 수에 따라 자동 계산됨 | — |
| 시간 제한 | 잡 최대 실행 시간 | 8:00:00 |
GPU 타입별 자원 상한:
| GPU | 노드 | CPU/GPU | 메모리/GPU | 최대 GPU |
|---|---|---|---|---|
| A6000 | sv4ka-n[1-4] | 6코어 | 40G | 4 |
| A40 | sv8ka-n[1-3] | 10코어 | 100G | 8 |
| A100 | a100-n[1-4] | 20코어 | 40G | 4 |
Step 3. 서버 시작
Start 클릭 → Slurm 잡 할당 대기 (수 초 ~ 수십 초) → JupyterLab 자동 진입

JupyterLab 사용
서버 시작 후 JupyterLab 인터페이스가 브라우저에 열립니다.

VS Code 사용
- JupyterLab Launcher 탭에서 VS Code 아이콘 클릭

- 새 탭으로 VS Code 인터페이스 열림

GPU 할당 확인
JupyterLab 또는 VS Code의 터미널에서 GPU 할당 확인
echo $CUDA_VISIBLE_DEVICES # 할당된 GPU 인덱스
nvidia-smi # 할당받은 GPU만 표시됨


서버 종료
작업이 끝나면 반드시 서버를 종료하여 다른 사용자가 GPU를 사용할 수 있도록 합니다.
- 브라우저 상단 File → Hub Control Panel 클릭

- 해당 서버의 Stop 버튼 클릭

또는 URL에서 직접: https://aix-gpu.inha.ac.kr/hub/home
Local Disk 활용법
학습 데이터의 크기가 클 경우, 네트워크 병목 현상으로 인하여 학습이 지연될 수 있습니다. 이런 경우, 각각의 GPU Node의 Local Disk를 이용하여 학습한다면 더 빠른 속도로 학습할 수 있습니다.
- 각 GPU 별 Node 명칭
A100 : a100-[n1~n4]
A6000 : sv4ka-[n1~n4]
A40 : sv8ka-[n1~n3]
Login node 접속 (port number : 22)
ssh [본인의 ID]@165.xxx.xxx.xxx
local 디렉토리 생성 및 데이터 복사
만약 이전에 저장한 GPU Node에서 작업하고 싶다면, -w [GPU node 이름] option을 이용해서 지정할 수 있습니다.
할당받은 GPU Node 각각의 Local disk경로로 이동
cd /raid
사용자 이름의 경로 생성
mkdir [user name]
자신의 home 경로에서 /raid/user_name 으로 데이터 복사
cp -R /shared/home/[user name]/data /raid/[user name]
학습에 필요한 image file을 local disk로 복사
cp /shared/public/images/<image name> /raid/<user name>
Singularity 실행시 Disk mount
- Singularity 실행시,
-B /raid옵션을 추가해 local disk를 mount 해줍니다. - 만약 위의 옵션을 사용하지 않으면 singularity환경에서
/raid경로를 볼 수 없습니다.
singularity exec -B /raid --nv /raid/[user name]/[image name] bash - local disk에 Mount가 잘 되었는지 확인하기 (singularity 접속상태에서)
ll /raid - Pytorch import 여부 확인
python3입력 후,import torch입력시 이상이 없는지 확인.
작업 완료 후 결과물 이동방법
모든 GPU node의 Local Disk의 경로는 /raid 로 되어있습니다. 그리고 각 GPU node의 DISK용량은 약 3TB 이상(GPU node별 약간의 차이가 있음)입니다.
계정 당 최대 300GB를 사용 할 수 있으며, 초과 사용 시, 다른 사용자를 위해서 디렉토리의 데이터는 삭제될 수 있습니다.
CPU만 할당받아 특정 Node에 접근하기
만약, a40 GPU 3번 node에 GPU할당 없이 접속하여 데이터를 가져오고싶다면 다음 명령어 사용.
srun —-mem=8G -p p1 -w sv8ka-n3 —-pty bash
- p 다음에 자신이 속한 partition, -w 다음에 원하는 gpu 명칭 (a100→a100, a40→sv8ka, a6000→sv4ka)
- 이후 cp 명령어를 사용하여 복사 (
cp -R /원본경로 /대상경로)
예)cp -R /shared/home/USER_NAME/data /raid/USER_NAME
위의 문서 외의 추가적인 사용법은 아래 공식 API문서에서 확인하실 수 있습니다.
Slurm Documentation
Singularity Documentation
개발 환경 구축
현재 GPU 서버에서는 miniconda 환경과 singularity 환경을 지원하고 있습니다.
별도의 docker환경은 제공하지 않지만, singularity image 변환을 통해 docker image를 사용하실 수 있습니다.
miniconda 환경 설정
설치 파일을 다운로드할 경로로 이동(to home directory)
cd ~
Miniconda 설치 파일 다운로드
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
설치 파일 실행
bash Miniconda3-latest-Linux-x86_64.sh
Anaconda 설치 후 bash shell환경 재설정
source ~/.bashrc
conda 환경 생성 예시
conda create -n <환경 이름> python=<파이썬 버전>
conda 환경 실행
conda activate <환경 이름>

설치를 위해 Enter(기본 세팅으로 설치)입력

만약 설치 완료후 (base) 표시가 나오지않는다면 위의 그림처럼 실행
다음 명령어 수행 (conda 환경설정 오류가 발생했을 경우에만)
vi ~/.bashrc
vi 편집기에서 입력모드(i)로 들어가서 파일끝에 다음 명령어 추가 후 저장(esc, :wq)하기.
export PATH=~/miniconda3/bin:$PATH
환경변수 설정 반영
source ~/.bashrc
singularity Container 활용
sif이미지를 사용해서 singularity container 실행
우측 코드를 참조하여 실행
공용폴더(/shared/public/images)로 이동
cd /shared/public/images
#공용폴더에서 사용할 Singularity 이미지(.sif)를 확인
ls
원하는 이미지가 있고, 이를 사용하려면 다음 명령어 실행
singularity exec --nv /shared/public/images/<imagefile name> bash
만약 이미지를 jupyter notebook으로 실행시키고 싶다면
singularity exec --nv /shared/public/images/<imagefile name> jupyter notebook --no-browser --ip=<위에서 복사한 ip주소> --port=<위에서 설정한 포트번호>
#singularity Container의 사용을 중단하고 싶다면
exit
Docker 이미지를 Singularity SIF로 변환하기 - Docker Hub 사용편
Docker 이미지 선택 : Docker hub에서 변환하고자 하는 Dokcer image의 url을 찾습니다.
이때, 본인이 원하는 이미지가 docker hub에 없다면 업로드 할 수 있습니다(회원가입 필요).
- docker hub 접속 (https://hub.docker.com/)
- 원하는 docker Image 검색 ( ※본인의 이미지를 docker hub에 올릴 수 있습니다※)
- 원하는 도커 이미지 선택
Terminal로 복귀 및 변환 명령어 실행
예)singularity build ~/my_cuda_image.sif docker://pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel
- singularity build시, 시간이 오래걸릴 수 있습니다. 또한 singularity image파일을 저장할 경우 꼭 본인 계정의 home directory에 저장할 것을 부탁드립니다. (~/파일이름.sif)
/shared/public/images에 하지 않기
Docker 이미지를 Singularity SIF로 변환하기 - 로컬 이미지 사용편
- Docker 이미지 저장
- Singularity 명령어 실행
사용정책
파티션 정책
| 구분 | Class A, 참여교수 | Class B, 교내교수 | Class C, 외부 사용자 | 비고 |
|---|---|---|---|---|
| A100-1 | O | |||
| A100-2 | O | |||
| A100-3 | O | O | ||
| A100-4 | O | O | O | |
| A6000-1 | O | |||
| A6000-2 | O | O | ||
| A6000-3 | O | O | O | |
| A6000-4 | O | O | O | |
| A40-1 | O | LocalDisk 권장 | ||
| A40-2 | O | O | LocalDisk 권장 | |
| A40-3 | O | O | O | LocalDisk 권장 |
컴퓨팅 자원 정책
- 기본 정책
| 구분 | 정책 | 비고 |
|---|---|---|
| 작업 당 최대 작업 시간 | 7일 (7-00:00:00) | - 모든 작업에는 시간 지정 필수 - 추가 작업 시간 필요 시 별도 요청 |
| 계정 당 저장 공간 용량 제한 | 100G | - 추가 공간 필요 시 사유와 함께 요청 (아래 저장 공간 증설 요청 참고) |
| 계정 당 최대 작업 개수 | 100개 | - |
| 사용 가능 최대 GPU 개수 | a100: 4개/ a6000:4개/ a40:4개 | a40:4개 초과 신청 할 경우, 취소 될 수 있음 |
| 사용 가능 최대 CPU Core 개수 | a100: 20개/ a6000:6개/ a40:10개 | * 할당받은 GPU수 * 까지 사용 가능 (a40 4개 사용 경우, 40개) |
- NAS 정책
| 구분 | 경로 | 접근 권한 | 비고 |
|---|---|---|---|
| 공용 저장 공간 | /shared/public | 모든 계정 가능 | - |
| 계정 별 저장 공간 | /shared/home/계정명 | 본인 계정만 가능 | 계정 당 100GB |
저장 공간 증설 요청
계정 당 기본 저장 공간(NAS /shared/home/계정명)은 100GB 로 제한되어 있습니다. 추가 공간이 필요한 경우, 아래 양식의 각 항목을 채운 뒤 서버실 공식 이메일 aix-server@inha.ac.kr 로 보내주시면 사유 검토 후 증설해 드립니다.
| 항목 | 설명 | 작성 예시 |
|---|---|---|
| 계정 | 서버 로그인 계정명 | sujin |
| 신청자 이름 | 신청자 본인 이름 | 김수진 |
| 학번 | 학번 (교직원은 사번) | 12345678 |
| 이메일 | 연락 가능한 이메일 | sujin_k@inha.edu |
| 필요 용량 | 추가로 필요한 용량 | 500GB |
| 사용기간 | 증설이 필요한 기간 | 신청일 ~ 2026년 12월 31일 |
| 증설 사유 | 추가 공간이 필요한 이유 | 비디오 데이터셋 용량이 커서 저장 공간 증설이 필요함 |
| 사용 데이터셋 | 사용할 데이터셋 이름 | EgoExo4D |
아래 양식을 복사하여 작성 후 aix-server@inha.ac.kr 로 보내주세요
[인공지능융합연구센터 GPU 서버실 디스크 용량 증설 요청]
계정:
신청자 이름:
학번:
이메일:
필요 용량:
사용기간:
증설 사유:
사용 데이터셋:
로컬 디스크 사용 정책
| 구분 | 경로 | 노드 | 비고 |
|---|---|---|---|
| 계정 별 저장 공간 | /raid/계정명 |
sv8ka[n1-n3], sv4ka[n1-n4],a100[n1-n4] | 계정 당 최대 300GB |