Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/

NVIDIA의 Geforce와 Quador 계열의 차이를 FP64, FP32 ,FP16, BF16들과 함께 알아보자. Geforce(지포스)일반적인 게이머들에게 가장 잘 알려진 개인용 컴퓨터 그래픽 칩셋으로 1999년부터 출시되었다. Quadro(쿼드로)Geforce와 동일하게 1999년도부터 출시한 전문가의 렌더링 작업용 그래픽 칩셋이다.그럼에도 불구하고 칩셋은 Geforce와 동일한데, 소프트웨어적인 차이점이 있다. FP32 vs FP64두 계열의 차이를 알아보기 전에 FP32와 FP64의 차이를 알아보자. FP(Floating Point Precision, 부동 소수점 정밀도)는 큰 범위 값을 정의하는 방식이다.FP16은 반정밀도, FP32는 단정밀도, FP64는 배정밀도로 bit 개수가..

이전글에서는 CUDA에 대해서 살펴보았다.cuDNN이 무엇인지 알아보자. cuDNN(CUDA Deep Neural Network) cuDNN(CUDA Deep Neural Network)은 CUDA 프레임워크에서 딥러닝 가속화를 위한 라이브러리이다. 딥러닝에 많이 사용되는 Tensorflow, PyTorch, Keras와 같은 프레임워크에 활용되고 있다. tensorflow의 특정 버전이 cuDNN과 CUDA의 특정 버전과 호환되는 것을 확인할 수 있다. 하지만 tensorflow에서 GPU 활용 코드를 작성할 때는 cuDNN 라이브러리를 직접 호출해서 사용하는 코드는 보이지 않는다. ## GPU의 메모리를 제한하는 tensorflow 코드 예시gpus = tf.config.list_physical_..

그래픽 및 AI 연산에 왜 GPU(Graphics Processing Unit)가 필요한가? CPU는 박사한명, GPU는 초등학생 백 명에 비유할 수 있다.단순한 숫자 덧셈 문제 백개가 있다면 초등학생 백 명이 하나씩 문제를 푸는 것이, 박사 한 명이 백개의 문제를 푸는 것보다 더 빠를 것이다. A + B = CC + D = EE + F = G.... 하지만 위에처럼 다음 연산에 이전 연산의 결과가 필요한 경우, 초등학생 수천 명이 있더라도 계산이 빠른 박사님 한 명을 이길 수는 없을 것이다. 이처럼 CPU는 초고성능의 코어 하나로 순차적인 작업에 강점이 있고GPU는 저성능이지만 수많은 코어로 이루어져, 병렬 처리에 강점이 있다. 그래픽 처리에는 이전 계산 결과 정보가 필요하지 않고, 현재 폴리곤의..

몇 년 전 대학교 연구실에서 모델 학습에 일반 컴퓨터 GPU와 A100을 써본 경험이 있다.모델 학습에 파라미터를 조금씩 바꾸어 수십 번을 테스트해 보곤 했는데, 학교의 GPU 클러스터의 자원이 모자라 실행을 위해 몇 시간씩 대기하기도 했다. 그런데 A100이 성능이 훨씬 좋았지만 결국, 학습에 소요되는 시간은 얼추 비슷했던 것 같다.일반적인 모델 학습이 성능을 100% 끌어내지 못 한듯 하다. (혹은 아래에서 알아볼 MIG 때문일지도 모른다.) 그렇기에 GPU 성능을 끌어낼 수 있도록 코드적인 수정이 필요하거나, 유휴 GPU 자원을 활용하는 방안이 필요하다. 이를 위해 활용되는 MIG와 vGPU 기술에 대해 알아보자. MIG(Multi-Instance GPU) MIG는 GPU를 독립적인 여러 ..

RDMA(Remote Direct Memory Access) 일반적인 NIC에서의 데이터 전송 과정은 다음과 같다. 1. user space의 버퍼에서 kernel space의 소켓 버퍼로 데이터를 복사 후, 헤더 추가2. kernel space에서 NIC 버퍼로 복사 후, 수신 측으로 전송3. 수신 측이 패킷을 NIC 버퍼에서 kernel space로 복사4. 데이터가 kernel space에서 user space로 복사5. 컨텍스트 스위칭이 일어나 사용자 응용 프로그램 호출 이러한 과정은 CPU의 복사 작업과 커널 level로 인터럽트를 하는 등의 작업이 필요하므로 부하를 늘린다. 이러한 불필요한 과정을 제거하는 것이 RDMA이다.OS 영향 없이, 네트워크를 통해 다른 시스템으로 데이터를 빠르게 ..

DPDK 정리글을 읽고 오면 좋습니다.DPDK의 원리와 커널 우회(Kernel bypass) DPDK의 원리와 커널 우회(Kernel bypass)DPDK(Data Plane Development Kit)고속 패킷 처리를 위한 데이터 플레인(data plane) 라이브러리와 네트워크 인터페이스 컨트롤러(NIC) 드라이버의 집합이다.운영체제의 도움을 받지 않고 오버헤드 없이 사everenew.tistory.com SR-IOV를 알아보기 전에 OVS에 대해서 알아보자. OVS(OpenvSwitch)OVS 하이퍼바이저에서 실행되는 멀티 레이어 가상의 스위치이다.OVS를 통해 다른 VNF끼리의 전송을 간편하게 만들어 준다. 단 OVS 구현을 위한 패킷 포워딩 모듈은 커널 영역에 구현된다.따라서 이전의..

DPDK(Data Plane Development Kit)고속 패킷 처리를 위한 데이터 플레인(data plane) 라이브러리와 네트워크 인터페이스 컨트롤러(NIC) 드라이버의 집합이다.운영체제의 도움을 받지 않고 오버헤드 없이 사용자 애플리케이션이 직접 하드웨어를 독점제어할 수 있는 자체 인터페이스를 제공한다.이는 User mode에서 Kernel 모드로의 system call을 호출로 발생하는 지연을 제거하여 달성 가능하다.이를 kernel bypass 기술이라고 한다. Kernel Bypass (커널 우회)https://blog.cloudflare.com/kernel-bypass/ Kernel bypassIn two previous posts we've discussed how to rece..