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

문제 상황RHEL의 라이선스를 취득하지 않으면 기본 dnf repository를 사용할 수 없으므로 패키지 설치가 불가능하다.실제 업무에서도 외부 네트워크를 사용할 수 없는 경우가 있으므로 패지기 저장소를 내부에 만들 필요가 있다.그 두 가지 방법을 알아보자. 1. Local reposiroty RHEL OS의 ISO 이미지에는 필요한 패키지들이 포함되어 있다.지금 환경에서 iso이미지는 DVD에 있으므로 /dev/sr0 경로를 마운트 해준다.# DVD 마운트mount /dev/sr0 /mnt repository의 데이터인 AppStream과 BaseOS가 확인된다. 이제 RHEL에서 패키지 저장소 정보를 담는 설정 파일들의 경로인 /etc/yum.repos.d를 확인해 보면 redhat.repo 파..

VIP(Virtual IP)는 가상의 IP로, 여러 자원에 하나의 IP를 할당하는 기술이다.VIP는 높은 가용성을 보장해야 하는 네트워크 분야에서 이중화를 위해 많이 사용된다.그 대표적인 예가 Cisco에서 사용되는 HSRP 기술이다. 게이트웨이 다중화 프로토콜 - HSRP(Hot Standby Routing Protocol) 아래의 그림에서 게이트웨이(R1 라우터)가 단 하나만 존재한다면, R1에 장애가 발생했을 때 내부망은 외부망과 통신이 불가능해진다.게이트웨이를 두 개 (R1과 R2 라우터)를 배치하더라도, 게이트웨이 IP는 하나 밖에 할당할 수 없다.R1 라우터의 문제가 발생한다면 이를 감지하고, 게이트웨이 IP를 R2 라우터의 IP(이를 Real IP라고 함)로 바꿔주는 수작업이 필요하다..

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 (두 장군 문제)알림 서비스가 분산 시스템을 사용하는 이유 애플리케이션으로 알림을 보내는 대표적인..