본문 바로가기

분류 전체보기

(150)
vGPU 실습2 안녕하세요. 진또배기입니다. vGPU 실습 계속해서 진행하겠습니다. 4. Nvidia License Server 구축 a. 가상화 Nvidia Lisence 다운로드 받기 -https://ui.licensing.nvidia.com NVIDIA Licensing Portal ui.licensing.nvidia.com - 위 다운로드 사이트에서 아래 사진과 같이 NLS License Server (DLS) for VMware vSphere 를 다운로드 받아줍니다. 위 포탈에 로그인하기 위해 라이센스가 필요한데 이는 유료로 구매해야합니다. -이후 Agree and Download 버튼을 눌러줍니다. -그리고 라이센스 서버에 대한 IP를 지정해주어야합니다. 따라서, 좀 전에 VM생성했던 것 처럼, NVIDIA ..
vGPU 실습1 안녕하세요. 진또배기입니다. 오늘부터 제가 진행했던 프로젝트인 Nvidia A2 GPU와 Intel Flex GPU(VDI용 GPU)에 대해 실습해보는 시간을 갖겠습니다. -실습환경 제가 실습한 환경은 아래와 같습니다. 말로 설명하는 이해하는데 어려우니, 그림을 통해 먼저 알아보겠습니다. 1) 서버에 Nvidia/Intel GPU를 장착한 뒤, 2) VMware의 가상화 하이퍼바이저인 ESXi를 설치하고, 3) VM을 생성한 뒤, VM에 Window 10 OS를 설치하고, 4) VM에 GPU Driver를 설치하고, 5) VM에 Horizon Agent를 설치하고 6) AD서버를 구축하고, 7) Horizon Connection Server를 구축하고, 9) VMware Horizon Client에서 P..
3-1. Fundamentals of Accelerated Computing with CUDA Python 안녕하세요. 진또배기입니다. 이번엔 해당 교육의 3번째 챕터인 Effective Use of the Memory Subsystem 에 대해 공부하는 시간을 갖겠습니다~😊 우리가 지난 시간에 연구한 것은 CUDA커널을 작성역량과 GPU에 대기 시간을 줄일 수 있는 Grid 실행역량입니다. 이를 기반으로, GPU의 Subsystem을 효과적으로 활용하는 기술에 대해 배우겠습니다! 위 기술은 CUDA 애플리케이션에 널리 적용 가능하며, CUDA 코드를 빠르게 만들 때 가장 중요한 기술 중 일부입니다. 정리하면, 1. 메모리 병합(memory coalescing) 2. 2차원 Grid 및 Thread 블록 작 3. 공유 메모리(사용자 제어 온디맨드 메모리 공간)의 사용 4. 공유 메모리 Bank 충돌과 이를 해..
GPU Architecture 자, GPU의 구조는 다음과 같습니다. (엔비디아의 Tesla, Fermi, Kepler, Maxwell, Pascal, Volta, Ampere, Hopper , Ada Lovelace까지 매우 구조가 다양하긴 합니다ㅠ) 매우 어려워 보입니다. 그래서 예를 들도록 하겠습니다. 가장 최신 GPU인 L4 GPU를 예로 들겠습니다.(글쓰는 2023.12 기준) (맨 앞글자때문에 A100이 Ada Lovelace 계열인 줄...1시간 헤맴..) 그래픽 카드의 이름과, GPU 아키텍처의 이름, GPU code name을 헷갈리지 않도록합시다. 위 그림에 따라, 우리는 최신 GPU인 AD104의 아키텍처에 대해 뜯어보도록 합시다. 1. L4 GPU의 구조 으음....역시 매우 복잡합니다. 찬찬히 살펴보면, ADA..
GPU란 무엇인가 안녕하세요. 진또배기입니다. 이번에는 제가 요즘 공부하는 주제인 GPU에 대해 알아보는 시간을 갖겠습니다. 무언가를 설명할때는 다른 사물과 비교해서 혹은 비유해서 이야기하는 것이 효과가 좋다는 것을 느낍니다. (예를 들면, 객체지향을 설명할 때, 절차지향과 비교해서 설명하듯... 그래서 책을 읽어야하나 봅니다.) 따라서 CPU와 비교해 설명하도록 하겠습니다. CPU: 1명의 서울대학생 GPU: 100명의 초등학생 으로 비유하면 이해가 쉬울 것 같습니다. 사칙연산 100문제를 각각에게 내주면 누가 더 빠를까요? 당연히 100명의 초등학생이 빠를 것입니다. 하지만 미적분 1문제를 각각에게 내주면 100명의 초등학생은 10년이 지나야 풀 수 있겠고 1명의 서울대생이 빠르게 문제를 풀 수 있을 것입니다. 이처럼..
2-1 Fundamentals of Accelerated Computing with CUDA Python 안녕하세요. 진또배기입니다. 이번엔 해당 교육의 2번째 챕터인 Custom CUDA Kernels in Python with Numba 에 대해 공부하는 시간을 갖겠습니다~😊 이 섹션에서는 CUDA 프로그래밍 모델이 병렬 작업을 구성하는 방법에 대해 더 자세히 알아보고, 이러한 이해를 활용하여 CUDA GPU에서 병렬로 실행되는 기능인 사용자 지정 CUDA 커널을 작성할 것입니다. 사용자 지정 CUDA 커널은 CUDA 프로그래밍 모델을 활용할 때 단순히 @vectorize로 ufunc를 장식하는 것보다 구현하는 데 더 많은 작업이 필요합니다. 그러나 ufunc가 불가능한 곳에서는 병렬 컴퓨팅을 가능하게 하고 최고 수준의 성능으로 이어질 수 있는 유연성을 제공합니다. 정리하면, 우리가 이번 챕터에서 배우는..
1-2 Fundamentals of Accelerated Computing with CUDA Python 안녕하세요. NVIDIA DLI 계속 진행하겠습니다. 1. NumPy Universal Functions(ufuncs)를 탑재한 GPU용 Numba 소개 GPU를 위한 NumPy Universal 함수(또는 ufuncs)를 컴파일하는 방법으로 Numba에서 GPU 프로그래밍을 시작할 것입니다. GPU 프로그래밍을 시작하면서 알아야 할 가장 중요한 것은 GPU 하드웨어가 데이터 병렬화를 위해 설계되었다는 것입니다. GPU가 여러 다른 요소에서 동일한 연산을 한 번에 계산할 때 최대 처리량이 달성됩니다. NumPy 배열의 모든 요소에서 동일한 연산을 수행하는 NumPy Universal 함수는 자연스럽게 데이터 병렬이므로 GPU 프로그래밍에 적합합니다. 1) GPU를 위한 ufuncs 만들기 Numba 는 ..
1-1 Fundamentals of Accelerated Computing with CUDA Python 안녕하세요. 진또배기입니다. 먼저 Fundamentals of Accelerated Computing with CUDA Python를 시작하기 앞서, NVIDIA에서 CUDA 파이썬의 컴퓨팅 가속화를 위한 배경에 대해 알아보겠습니다, 1. 배경 Python은 매우 간단하고, 응용 모듈이 많아서, 많이 선호되지만, 속도가 중요한 프로그램에서는 항상 문제가 됩니다.(Python 코드의 속도 튜닝의 끝은 다른 언어로 다시 개발하는 것이라고 할 만큼, Python은 느리다.) Python에만 존재하는 응용 패키지들이 많아, Python 언어를 유지하면서 속도 튜닝이 필요한 경우가 많습니다. Python이 느린 이유는 많지만, 아래의 이유가 치명적입니다. 1) 인터프리터 언어 : 코드를 한줄 씩 읽고, 해석하는 ..
Demo를 이렇게 할 수도 있구나 안녕하세요. 진또배기입니다. 저는 한 외국계 IT 기업에서 System engineer 업무를 수행하고 있습니다. 업무를 수행하면서 고객사에게 저희 회사의 기술을 시연하거나, Demo를 해야할 때가 많은데요. 고객사의 실무자가 아닌, IT에 대해서 잘 모르시는 고객사의 구매 그룹 차장, 경영진에게 기술을 시연할때마다, 기술을 이해시키는 것이 어려워서 늘 난관을 거칩니다. (예를 들면, VMware vSphere를 말하는데, 고객님은 VMware vs Phere인줄 아시더라구요ㅠㅠ) 이럴 경우, 이해를 돕기 위해 Demo를 통해서 눈으로 확인하고, 저희 회사의 기술과 목표, 효과에 대해 설명하는데요. 저 같은 경우에는 늘 VM몇개를 띄워서 VM들이 잘 동작하는지, DB튜닝이 잘 되는지, 복제가 잘 되는지 ..
CUDA란 무엇인가 안녕하세요. 진또배기입니다. 오늘은 그래픽 처리 장치(GPU)에서 사용하는 CUDA에 대해 알아보겠습니다. CUDA의 사전적의미는 CUDA("Compute Unified Device Architecture", 쿠다)는 그래픽 처리 장치(GPU)에서 수행하는 (병렬 처리) 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술 입니다. CUDA를 사용하는 이유는 매우 간단한데, "많은 양의 연산을 동시에 처리하기 위함"입니다. GPU로 대규모 연산, 딥러닝을 돌리기 위해서 사용하는 프로그램이 CUDA입니다. CUDA는 GPU 제조회사로 유명한 'NVIDIA' 회사용 프로그램입다. (GPU가 NVIDIA 외 다른 회사라면 다른 프로그램을 사용해야 합니다.) ..