반응형
시리즈의 열 번째이자 마지막 글입니다. 지금까지 1편부터 9편에 걸쳐 Vulkan을 이용한 GPGPU 프로그래밍 기초를 다뤘습니다. CUDA에 익숙한 분들을 대상으로 Vulkan의 준비 과정, Compute 셰이더 파이프라인 구성, 메모리 및 디스크립터 관리, 디버깅 및 프로파일링 기법 등을 차근차근 설명했으며, 간단한 벡터 덧셈 예제를 통해 전체 흐름을 체험해보았습니다. 이제 이 입문 시리즈를 마무리하며, 이후 Intermediate/Advanced 주제로 나아갈 때 참고할 만한 자료와 도전 과제들을 간단히 정리하고자 합니다.입문 시리즈 마무리이 시리즈를 통해 다음과 같은 과정들을 이해하고 실습했습니다.Vulkan 환경 설정(Ubuntu/Windows), CMake를 통한 빌드인스턴스, 물리 디바이스,..
시리즈의 아홉 번째 글입니다. 지금까지 인스턴스 설정, 물리 디바이스 선택, 로지컬 디바이스와 큐 확보, 커맨드 버퍼 & 큐를 통한 명령 전달, 메모리 관리, Compute 파이프라인 & 디스크립터 설정, 그리고 벡터 덧셈 예제로 GPGPU 전체 흐름을 익혀보았습니다. 또한 디버깅과 프로파일링에 대해 간단히 살펴봤습니다. 이번 글에서는 지금까지 다룬 내용을 좀 더 실전적 관점에서 정리하고, 다음 단계(Intermediate/Advanced)로 넘어가기 전 고려할 만한 주제들을 언급하겠습니다.여기까지 다룬 내용 정리환경 설정 & 기본 예제:Vulkan SDK, 드라이버 설치가장 단순한 “Hello Vulkan!”로 인스턴스 생성 확인CMake를 통한 빌드 예제물리 디바이스 & 로지컬 디바이스 & 큐:GPU..
아래는 이 시리즈의 여덟 번째 글입니다. 지난 글(#7)에서는 벡터 덧셈 예제를 통해 Vulkan을 활용한 GPGPU 연산의 전체 흐름을 체험해보았습니다. 이제 어느 정도 기본 개념과 실전 예제를 익혔다면, 개발 과정에서 마주할 수 있는 문제들을 어떻게 디버깅하고, 성능을 프로파일링할 수 있는지 알아볼 차례입니다. 이번 글에서는 디버깅, 검증 레이어(Validation Layers)와 성능 프로파일링 기초를 살펴보며, 복잡한 Vulkan 생태계에서 발생할 수 있는 다양한 이슈를 어떻게 추적하고 최적화할 수 있을지 소개하겠습니다.왜 디버깅과 프로파일링이 중요한가?Vulkan은 로우레벨 API이기 때문에 초기화, 메모리 관리, 파이프라인 설정, 디스크립터 업데이트 등 다양한 단계에서 실수가 발생하기 쉽습니다..
지난 글(#6)에서는 Compute 셰이더를 SPIR-V로 컴파일하고, 이를 기반으로 Compute 파이프라인을 만들고, 디스크립터를 활용해 셰이더에 데이터를 연결하는 방법을 살펴봤습니다. 이제 이 모든 준비 과정을 종합해 실제로 GPGPU 연산을 수행하는 간단한 예제를 만들어보겠습니다. 이번 글에서는 벡터 덧셈(Vector Addition) 예제를 통해, 호스트에서 데이터를 준비하고 GPU로 전달한 뒤, Compute 셰이더를 통해 연산을 수행하고 결과를 다시 가져오는 전체 흐름을 정리해볼 것입니다.CUDA에서 벡터 덧셈은 대략 cudaMalloc, cudaMemcpy, kernel>>, cudaMemcpy라는 단순한 과정을 거치며, 커널 코드도 data[idx] = a[idx] + b[idx];처럼 ..
안녕하세요! 오늘은 미국에서 인기 있는 투자 플랫폼인 로빈후드(Robinhood)에서 계좌를 만드는 방법에 대해 자세히 알아보겠습니다. 로빈후드는 사용이 간편하고 수수료가 없어 초보 투자자들에게 특히 인기가 있습니다. 그럼 지금부터 단계별로 로빈후드 계좌 개설 과정을 살펴보겠습니다.1. 로빈후드 앱 다운로드먼저 로빈후드 앱을 다운로드해야 합니다. iOS 사용자는 App Store에서, Android 사용자는 Google Play Store에서 'Robinhood'를 검색하여 앱을 설치할 수 있습니다. 웹 브라우저를 통해서도 계좌를 만들 수 있지만, 모바일 앱을 사용하는 것이 더 편리합니다.2. 계정 생성하기앱을 설치한 후, 'Sign Up' 버튼을 눌러 계정 생성을 시작합니다. 이메일 주소, 비밀번호, ..
안녕하세요, 엔지니어링 분야에 관심 있는 여러분! 오늘은 Levels.fyi의 최신 업데이트에 대해 소개해드리려고 합니다. 이 흥미진진한 소식을 하나씩 자세히 살펴보겠습니다.우선, Levels.fyi에 대해 모르시는 분들을 위해 간단히 설명드리겠습니다. Levels.fyi는 원래 소프트웨어 엔지니어들을 위한 급여 정보 공유 플랫폼으로 시작했습니다. 이 플랫폼은 기술 업계의 급여 투명성을 높이는 데 큰 역할을 해왔으며, 엔지니어들이 자신의 가치를 정확히 평가하고 협상에 활용할 수 있도록 도와왔습니다.Levels.fyi의 새로운 확장최근 Levels.fyi 팀은 플랫폼의 범위를 대폭 확장했습니다. 이제 소프트웨어 엔지니어링을 넘어 다양한 엔지니어링 분야의 전문가들을 위한 서비스를 제공하기 시작했습니다. 이는..
안녕하세요, 오늘은 재외국민 등록에 대해 자세히 알아보겠습니다. 해외에 장기 체류하는 대한민국 국민이라면 반드시 알아야 할 정보들을 꼼꼼히 살펴보겠습니다.재외국민 등록이란?재외국민 등록은 외국에 거주하거나 체류하는 대한민국 국민을 관할 재외공관에 등록하도록 하는 제도입니다. 이는 재외국민의 현황을 파악하여 국내외 활동의 편익을 증진하고, 재외국민 보호 정책 수립에 도움을 주기 위한 목적으로 시행되고 있습니다.재외국민 등록은 의무인가요?네, 재외국민 등록은 법적 의무사항입니다. 재외국민등록법에 따르면, 외국의 일정한 지역에 90일 이상 거주하거나 체류할 의사를 가지고 그 지역에 체류하는 대한민국 국민은 주소나 거소를 정한 날부터 30일 이내에 재외국민등록을 해야 합니다.재외국민 등록의 장점재외국민 등록을 ..
이 시리즈를 따라오느라 수고 많으셨습니다! 여기까지 오신 독자라면, 이제 PyTorch와 다양한 강화학습 알고리즘(DQN 계열, REINFORCE, A2C, PPO, SAC)에 대한 전반적인 감각을 갖추게 되었을 것입니다. 다시 한 번 지금까지 다룬 내용을 간략히 정리해봅시다.지금까지 다룬 내용 정리개념 및 기본 환경 구축 (1편):PyTorch, OpenAI Gym 환경 설정 및 강화학습 기본 개념 소개DQN과 변형들 (2~6편):DQN: 가치기반 접근의 기본Double DQN: Q값 과추정 완화Dueling DQN: 상태 가치(V)와 Advantage 분리로 효율적 학습Prioritized Experience Replay (PER): 중요도가 높은 경험을 더 자주 샘플링하여 효율 개선정책기반 & Ac..
이번 시리즈에서는 지금까지 러스트 언어의 기초와 다양한 기능을 익힌 독자분들을 위해, 직접 손을 움직이며 실전 프로젝트를 구현해보는 시간을 가질 예정입니다. 이 시리즈는 “입문 시리즈” 이후 단계로, 이제는 하나하나 따라 해보면서 러스트 프로젝트를 실제로 구축하고 발전시켜 나가는 과정에 초점을 맞춥니다. 첫 번째 예제로는 러스트(Rust)를 활용해 간단한 CLI(Command Line Interface) 유틸리티를 만들어봅시다. 사용자로부터 검색어와 디렉토리를 입력받아 해당 디렉토리(및 하위 디렉토리)에서 검색어를 포함한 파일을 찾아 출력하는 간단한 툴입니다. 이 과정을 통해 다음과 같은 실전 감각을 익힐 수 있습니다.Cargo를 통한 프로젝트 초기화 및 빌드 과정 이해CLI 인자 파싱 및 명령행 툴 구..
1. Boil the Ocean이번에 소개할 표현은 "Boil the Ocean"입니다. 이 표현은 너무 크고 복잡한 일을 한꺼번에 해결하려고 시도하다가 비현실적인 목표를 세우는 것을 의미합니다. 소프트웨어 개발에서는 범위를 좁히고 실현 가능한 목표를 설정하는 중요성을 설명할 때 자주 사용됩니다.2. 의미"Boil the Ocean"은 "바다를 끓이다"라는 말 그대로 불가능하거나 비효율적인 작업을 의미합니다. 즉, 한 번에 너무 많은 것을 시도하려는 행동을 비판하거나 조언할 때 사용됩니다.예:"우리는 이 프로젝트에서 모든 문제를 해결하려고 하면 안 돼요. 현실적인 목표를 세워야 합니다."→ "We shouldn’t try to boil the ocean with this project. Let’s foc..