github 레포지토리에 collaborator 추가하고 머지하기

프로젝트를 위해서 레포지토리에 새 참여자를 추가하고, 브랜치를 생성해서 관리하는 과정.

참여자 관리

레포지토리 Settings 에서 Collaborators 페이지에서 참여자를 관리할 수 있다.

Collaborator 에 추가할 github 사용자를 검색

Collaborators 추가 사용자 목록

사용자는 알림에 Collaborator 에 추가되어 허용할지를 등록

요청받은 collaborator 을 받아들인다

Collaborator 사용자가 새로운 파일을 추가한다.

<img src=’https://i.imgur.com/2i1UOyD.png>

레포지토리 브랜치의 새로운 변경/추가/삭제가 발생하면 Pull request 를 요청해야 한다.

Collaborator로 참가한 사용자는 pull request 하고 merge도 할 수 있지만 정책으로 main 관리자가 하도록 하자.

새 브랜치 사용

pull request 와 merge 를 위한 정책 구성. Collaborator도 merge 할 수 있지만 팀장/관리자가 merge 하도록 정책을 정한다.

Pull request 와 merge

새 브랜치를 생성한다

새 브랜치에서 작업을 수행한다.

새 브랜치에 변경된 내용을 pull request 할 수 있다.

새 브랜치에 변경된 내용을 pull request 할 수 있다.

사용자/관리자는 새 브랜치에 변경된 내용을 pull request 할 수 있다.

관리자/팀장은 새 브랜치에 변경된 내용을 merge 한다.

관리자/팀장은 새 브랜치에 변경된 내용을 merge 한다.

관리자/팀장은 사용한 브랜치는 제거해 레포지토리를 정리한다.

WSL 에서 CUDA 사용을 위한 User Guide

CUDA on WSL User Guide

2021/12/05 일 현재

1. WSL 이란

네이티브 리눅스 앱을 Windows 11 and later OS build 에서 실행할 수 있는 Windows Subsystem for Linux 이다.

WSL 1 vs. WSL 2

WSL2 is the second generation of WSL that offers the following benefits:

  • Linux applications can run as is in WSL2. WSL 2 is characteristically a VM with a Linux WSL Kernel in it that provides full compatibility with mainstream Linux kernel allowing support for native Linux applications including popular Linux distros.

  • Faster file system support and that’s more performant.

  • WSL 2 is tightly integrated with the Microsoft Windows operating system, which allows it to run Linux applications alongside and even interop with other Windows desktop and modern store apps.

2. NVIDIA GPU Accelerated Computing on WSL 2

WSL 2에서 마이크로소프트는 NVIDIA CUDA 및 기타 컴퓨팅 프레임워크와 기술과 함께 데이터 과학, 머신러닝 및 추론 솔루션을 위한 GPU 가속 컴퓨팅을 가능하게 하는 GPU 반가상화 기술을 도입했다. WSL 유사 환경 또는 WSL 2에서 CPU 개입을 줄이면서 GPU에서 더 많은 병렬 작업을 파이프라인으로 수행할 수 있으므로 거의 네이티브에 가까운 성능을 제공한다. NVIDIA 드라이버 지원은 CUDA 및 관련 컴퓨팅 소프트웨어 스택에서 멈추지 않습니다. 다이렉트 ML 지원과 함께 DX12 API를 지원하여 WSL 2에서 그래픽을 활성화하는 DirectX 지원이 있습니다.

Illustration of the possibilities with NVIDIA CUDA software stack on WSL 2

3. WSL2 시작

WSL2 요구사항

  • Geforce, Quadro 제품 계열에서 Pascal 또는 최신 GPU 구조를 WDDM모드로 SKU를 사용할 수 있다.
  • 최신 WSL 커널 로 5.10.16.3 이상을 권장한다. (최소 4.19.121+ 이상)
  • Windows 11 에서는 윈도우 인사이더 프로그램 가입이 필요 없다.
  • Windows 10 에서는 윈도우 인사이더 프리뷰 프로그램이 필요하다.

Step 1: Install NVIDIA Driver for GPU Support

윈도우 11 그래픽 드라이버로 NVIDIA GeForce Game Ready or NVIDIA RTX Quadro 를 설치한다.

3.3. Step 2: Install WSL 2

윈도우 터미널 / 커맨드 라인 / 파워쉘 에서 WSL을 설치

1
wsl.exe --install

Ensure you have the latest WSL kernel:

1
wsl.exe --update

3.4. Setting Up a Linux Development Environment

기본으로 WSL2는 Ubuntu 가 설치되어 온다. 다른 배포본은 MS store에서 설치. wsl 시작.

1
wsl.exe

업데이트를 위한 WSL 명령:

4. Getting Started with CUDA on WSL 2

WSL2에서 CUDA 를 지원하려면 CUDA Toolkit이 설치되고 cuDNN도 설치해야 한다.

4.1 WSL에서 CUDA Toolkit을 설치한다

WSL 2 에서 CUDA application을 실행하려면 CUDA toolkit for Linux 를 설치해야 한다.

CUDA Toolkit 11.5 를 다운로드하고 설치한다.

1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda-repo-wsl-ubuntu-11-5-local_11.5.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-5-local_11.5.1-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-5-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

4.2 cudnn 설치

CUDA Toolkit 버전에 대응하는 cuDNN 을 설치해야 한다.

1
2
3
sudo apt install libcudnn8
sudo apt install libcudnn8-dev
sudo apt-get install libcudnn8-samples

4.3 CUDA 애플리케이션

윈도우에 CUDA 애프리케이션이 있아면 다음 같이 WSL에서 실행해 보자

1
2
3
$ cd /mnt/c/Users/<username>/Desktop
$ cp /mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.5/extras/demo_suite/deviceQuery.exe ~/
$ ./deviceQuery.exe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(tf25gpu_p39)~$ nvidia-smi
Sun Dec 5 02:29:22 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.00 Driver Version: 510.06 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:09:00.0 On | N/A |
| 0% 43C P8 20W / 320W | 1179MiB / 11264MiB | N/A Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

4.4 Building CUDA Samples

CUDA 샘플을 빌드해서 실행해 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
(tf25gpu_p39)/usr/local/cuda-11.5/samples/4_Finance/BlackScholes$ ./BlackScholes
[./BlackScholes] - Starting...
GPU Device 0: "Pascal" with compute capability 6.1

Initializing data...
...allocating CPU memory for options.
...allocating GPU memory for options.
...generating input data in CPU mem.
...copying input data to GPU mem.
Data init done.

Executing Black-Scholes GPU kernel (512 iterations)...
Options count : 8000000
BlackScholesGPU() time : 0.234201 msec
Effective memory bandwidth: 341.586668 GB/s
Gigaoptions per second : 34.158667

BlackScholes, Throughput = 34.1587 GOptions/s, Time = 0.00023 s, Size = 8000000 options, NumDevsUsed = 1, Workgroup = 128

Reading back GPU results...
Checking the results...
...running CPU calculations.

Comparing the results...
L1 norm: 1.741792E-07
Max absolute error: 1.192093E-05

Shutting down...
...releasing GPU memory.
...releasing CPU memory.
Shutdown done.

[BlackScholes] - Test Summary

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

Test passed
(tf25gpu_p39)/usr/local/cuda-11.5/samples/4_Finance/BlackScholes$

참고