전체 글

전체 글

    Pytorch에서 Multi GPU를 사용하는 방법(nn.DataParallel)

    Pytorch에서 Multi GPU를 사용하는 방법(nn.DataParallel)

    해당 게시글은 자연어처리 리뷰 모임인 집현전 팀의 고현웅님의 [Large-scal LM에 대한 얕고 넓은 지식들(part1)] 부분의 Data Parallelism 강의 영상을 기반으로 작성되었습니다. Intro. 딥러닝은 기본적으로 매트릭스 연산 기반이기 때문에 모델 학습 시 GPU 연산이 필수적입니다. 하지만 딥러닝 모델의 사이즈가 너무 크고 데이터 양도 많다면, GPU 하나로는 연산이 힘든 경우가 생깁니다. 이 경우 배치 사이즈가 클 경우 자주 나타나는 CUDA OUT OF MEMORY 에러가 뜨게 됩니다. 만약 여러 개의 GPU를 가지고 있다면, 우리는 여러 개의 GPU를 이용해 병렬 처리를 하여 이를 해결할 수 있습니다. Pytorch에서 이러한 기능을 편리하게 사용할 수 있는 모듈을 제공합니다..

    딥러닝 모델에서의 분산학습(Distributed Training)

    딥러닝 모델에서의 분산학습(Distributed Training)

    해당 게시글은 자연어처리 리뷰 모임인 집현전 팀의 고현웅님의 [Large-scal LM에 대한 얕고 넓은 지식들(part1)] 부분의 Parallelism: Theory and Practice 강의 영상을 기반으로 작성되었습니다. Intro. 딥러닝 모델에서는 학습 시 대용량의 모델 크기와 학습 데이터 때문에 여러 GPU에 나누어 연산하는 분산학습(Distributed Training)이 이루어져야 GPU를 최대한 활용하여 효율적으로 학습할 수 있습니다. 이러한 딥러닝 분산학습에는 학습 데이터를 여러 GPU에 나누어 학습하는 데이터 병렬화(Data Parallelism)와 모델을 여러 GPU에 나누는 모델 병렬화(Model Parallelism)와 입력 미니배치를 여러 GPU에 나누어 실행하는 파이프라인..

    [Sequential Logic Circuit] 카운터(Counter)

    [Sequential Logic Circuit] 카운터(Counter)

    해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 을 기반으로 작성되었습니다 Counter - Counter - Asynchronous Counter - Synchronous Counter - Other types of counters Counter 카운터(Counter)란? 2개 이상의 플립플롭으로 구성되며, 매 입력 펄스(Pulse) 마다, 미리 정해진 순서대로 상태가 주기적으로 변하는 레지스터임. 카운터의 용도 계수, 타이버, 주파수 계수기 등 발생 횟수를 세거나 동작 순서를 제어(순서제어)하기 위한 타이밍 신호 생성에 적합. 클럭 펄..

    [Sequential Logic Circuit] 레지스터(Register)

    [Sequential Logic Circuit] 레지스터(Register)

    해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 을 기반으로 작성되었습니다 Register - Register - Shift Register Register 레지스터(Register)란? 일련의 플립플롭(Flip-Flop)들이 클럭(Clk)을 공유토록 만들어진 n비트 저장 장치임. n개의 플립플롭을 갖는 레지스터인 경우, $2^n$개의 서로 다른 상태들이 존재하고, n비트 정보의 저장이 가능하다. 레지스터의 역할 논리회로를 구성하는 범용소자로서 레지스터는 일련의 비트 저장 및 이동 소자 역할을 수행한다. 1개의 클럭 입력을 공유하는 다수의..

    [Sequential Logic Circuit] 플립플롭(Flip-Flop)

    [Sequential Logic Circuit] 플립플롭(Flip-Flop)

    해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 을 기반으로 작성되었습니다 Flip-Flop - Flip-Flop - D Flip-Flop - T Flip-Flop - JK Flip-Flop Flip-Flop 플립플롭(Flip-Flop)이란? 클럭(Clk) 입력을 갖는 2진 기억소자(memory)로, 클럽 입력에만 반응하여 출력의 상태를 바꾼다. 클럭 입력 및 래치 소자로 구현되며, 주로 비트 기억용도로 사용된다. 플립플롭의 종류 - SR 플립플롭(거의 사용되지 않음) - JK 플립플롭(가장 많이 사용됨) - T 플립플롭 - D 플립플롭 ..

    [Sequential Logic Circuit] 래치(Latch)

    [Sequential Logic Circuit] 래치(Latch)

    해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책을 기반으로 작성되었습니다 Latch - Basic Latch - Gated SR Latch - Gated D Latch Basic Latch 래치(Latch)란? 비트를 임시로 저장할 수 있는 기억소자(memory) 중 하나로, 두 개의 게이트(gate)로 구성된다. 게이트 하나의 출력이 다른 게이트의 입력으로 다시 연결되는 피드백(Feedback)형태를 가지고 있다. SR 래치(SET-RESET Latch) 입력이 S(set)와 R(Reset)로 두개이고, 출력의 형태가 SET, RESET 두 가지인 래치..

    [Combinational Logic Circuit] 코드 컨버터(Code converters)

    [Combinational Logic Circuit] 코드 컨버터(Code converters)

    해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition]책과 GeeksforGeeks의 Code Coverters를 기반으로 작성되었습니다 Code Converters - Code Converter - A BCD-to-7-segment display code converter - Binary to/from Gray code Code Converter 코드 컨버터(Code Converter)란? 하나의 코드를 다른 코드로 변환하는 회로 코드 컨버터 응용 예시 7-segment 장치 - 7개의 획으로 구성되어 있어 0~9까지 표현할 수 있는 장치 - 코드 컨버터를 이용하..

    디지털 논리회로(Digital Logic Circuit) 소개

    디지털 논리회로(Digital Logic Circuit) 소개

    논리회로는 크게 Combinational Logic Circuits과 Sequential Logic Circuits로 분류할 수 있습니다 1. Combinational Logic Circuits 현재 입력 값들을 논리 회로 내부의 연산자들을 통해 출력 값을 내보내는 기능을 합니다. 크게 세 개의 메인 카테고리로 나눌 수 있는데, Arithmetic and Logical funcation과 AND, OR 등을 할 수 있는 단순 논리 연산자 등을 조합하여 다수의 입출력 관계를 결정하는 data transmission과, 의미 있는 데이터 혹은 어플리케이션에 맞춰 논리 연산자를 조합한 code converter로 나눌 수 있습니다. 2. Sequential Logic Circuits 현재 입력값과 더불어 이전..