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..

윈도우에서 kafka를 실행하려면, ZooKeeper를 먼저 동작해야 한다.왜 그런 작업이 필요한지 알아보자. Zookper란?kafka는 분산 시스템으로 동작하기 때문에 관리를 해줄 코디네이션 서비스가 필요하다. 분산 시스템은 서버 간의 정보 공유, 서버 상태 체크, 데이터 락 등의 기능이 필수적으로 필요하다.Zookeeper는 분산 코디네이션 서비스로 Kafka와 같은 분산 솔루션에 사용된다. 이전 글을 참조해보면 알 수 있지만, 분산 시스템은 가용성을 챙긴 만큼 단점이 존재한다.https://everenew.tistory.com/483 (알림 시스템으로 알아보는) 분산 시스템의 trade-off (두 장군 문제)알림 서비스가 분산 시스템을 사용하는 이유 애플리케이션으로 알림을 보내는 대표적인..

빌드란?소스코드를 실행가능한 프로그램 파일로 만드는 과정을 의미한다.이 과정에서는 소스코드의 컴파일과 실행 관련 파일을 패키징하여 배포 가능한 형태로 만든다. 빌드 도구빌드 과정을 자동화해주는 소프트웨어로 대표적인 빌드 도구가 Maven과 Gradle이다.이 도구들은 의존 라이브러리들을 대신 다운로드 해주고 컴파일/테스트/빌드의 과정을 진행해 준다.Maven과 Gradle을 알아보기 전에 이전에 사용되던 빌드 도구도 같이 알아보자. MakeUNIX 계절에서 사용되는 원조 빌드 툴이다.Makefile을 통해 빌드 작업을 통일된 구조로 제공하며 C언어 빌드에는 아직도 활용된다. ANTJava의 등장으로 C언어 위주의 빌드 툴인 Make를 대체하기 위해 등장했다.간단하기 때문에 사용에는 쉽지만,..

Gitlab을 이해하기 위해서는 비슷해보이는 Github과 도대체 어떻게 다른지가 중요했다. 둘이 비슷한 네이밍을 가지길래 같은 회사의 서비스인 줄 알았지만, 사실 Git라는 분산형 버전 관리 시스템을 제공하는 다른 서비스들이다. Git이란분산형 버전 관리 시스템으로, 소스코드 파일들을 복사,백업,저장 등의 기능을 제공하여 많은 프로젝트 인원들이 함께 같은 파일을 작업할 수 있다. 자세한 기능과 원리는 inpa님의 게시글을 참조하자.https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%89%BD%EA%B2%8C%EC%9D%B4%ED%95%B4#git_%EC%9D%B4%EB%9E%80_..