Instruction-Level Parallelism (ILP)

Share

Instruction-Level Parallelism (ILP) and Its Exploitation

ILP: concepts and Challenges

ILP -> hardware, software 두가지 방법으로 끌어낸다.

CPI < 1

branch 와 다음 branch 사이의 instruction 들을 basic block 이라고 함.
한 basic block 안에서 ILP를 끌어내는 것은 한계가 있기 때문에 여러개의 basic block 에서 ILP를 이끌어내야함.
가장 간단한 방법은 loop iteration 에서 찾는 것. -> loop-level parallelism

  • 이 경우 vector processing이 효율적이다.
Compiler technique

loop unrolling , scheduling
여러개의 loop를 합쳐서 loop 조건 연산을 줄이거나, 순서를 바꿔서 stall 를 줄임.
limitation -> code size 가 커짐, register pressure 가 쎄짐.

Branch prediction

static - compile time 에
dynamic - hardware 가 실제 연산 도중에.

dynamic 중에 two-level, correlation, tournament predictor 들이 있음.
(local) (global) (둘 다)

Dynamic scheduling

Compile time(static)에 해결 못하는 것들을 해결(ex. cache miss 로 인한 delay)

Tomasulo의 방법이 대표적.

  • reservation station, renaming 등을 이용.
  • 장점으로는 distribution of hazard detection logic, elimination of stalls for WAW, WAR 이 있음.

Tomasulo 알고리즘은 2.5절에서 잘 설명되어있음. 찾아볼 것.
이 scheme 은 개발된 이후 몇년동안 잘 안쓰이다가 90년대 이후에 널리 쓰이게 되었는데
그 이유는 다음과 같다.

  1. 특정코드, 특정 하드웨어, 컴파일러의 지원없이 성능향상이 가능
  2. 캐시가 고안되기 전에 생긴 방법이지만, 캐시로 인한 예측불가능 delay 때문에 더욱 널리 쓰이게 됨. Out-of-order 는 캐시 미스로 이한 delay 시간동안 연산을 계속 수행가능하도록 해줌.
  3. issue capability 에 더욱 집중, schedule 이 어려운 코드에 더 신경을 쓰면서 중요해짐.
  4. dynamic scheduling 이 speculation 에 중요한 요소이고, speculation 이 90년대 중반에 적용되기 시작함.
Hardware-Based Speculation

speculation 을 통해 control dependence 를 극복하자.
speculation 으로 미리 연산후 맞을 경우 commit한다.

multiple issue static scheduling

in-order / out-of-order superscalar & VLIW

Advanced technique
  1. fetch bandwidth 를 늘리는데, 문제는 branch. -> Branch Target Buffer 를 사용
  2. return address predictors -> procedure return 주소를 예측.
  3. prefetch, branch prediction, memory access 등의 정보를 저장하는 trace cache.
Limits on ILP
  1. window size
  2. branch / jump prediction
  3. finite registers
  4. imperfect alias analysis
Reference

John Hennessy and David Patterson, Computer Architecture

Read more

허깅페이스 르로봇 해커톤 후기

허깅페이스 르로봇 해커톤 후기

본 블로그의 주인장들은 이번 허깅페이스의 르로봇 월드와이드 해커톤의 서울 호스트를 맡았습니다. 너무 재밌었고, 그 과정들과 후기를 남깁니다. 현장은 다큐 형식의 작은 영상을 만들었으니 한번 봐주세요. 계기 저는 LLM 만 하고 있었고, Action 모델은 사실 관심이 없었습니다, 준호는 1년 정도 로봇에 AI 를 넣는 일을 하고 있었죠. 허깅페이스에서 르로봇 플랫폼을 만들고

By park jong hyun
DeepDive LLM 3편 - Reinforcement Learning

DeepDive LLM 3편 - Reinforcement Learning

* 1편 - 사전 학습 (Pre Training) * 2편 - Supervised Fine Tuning * 3편 - Reinforcement Learning Reinforcement Learning Pretrain, SFT 에 이어서 세번째 단계는 Reinforcement Learning (RL, 강화학습) 입니다. 비유를 해보자면, pretrain은 그냥 책을 읽는 것이고요, SFT는 예제 문제와 이미 작성된 해설을 보는 것입니다. RL 은 해설이 없는 문제를 직접 풀어보는 것입니다. 어떻게 풀든

By park jong hyun
DeepDive LLM 2편 - Supervised Fine Tuning

DeepDive LLM 2편 - Supervised Fine Tuning

* 1편 - 사전 학습 (Pre Training) * 2편 - Supervised Fine Tuning * 3편 - 강화 학습 (Reinforcement Learning) Supervised Fine Tuning Post Training 의 첫번째 단계 SFT 입니다. Pre Training 에 비하면 아주 작은 양의 데이터만 필요하지만, 실제로 성능을 이끌어 내는데에는 중요한 단계입니다. 멀티턴 대화 (Multi Turn Conversation) ChatGPT 를 포함해서 대부분의 AI 서비스들은

By park jong hyun
DeepDive LLM 1편 - 사전 학습 (Pre-Training)

DeepDive LLM 1편 - 사전 학습 (Pre-Training)

본 포스트 시리즈는 카파시 선생님의 영상 을 기반으로 정리한 내용입니다. 직접 유투브에서 다루기도 했으니 영상으로 보셔도 됩니다. * 1편 - 사전 학습 (Pre-Training) * 2편 - Supervised Fine Tuning * 3편 - 강화 학습 (Reinforcement Learning) LLM 의 Training LLM을 만들 때는 크게 세 가지 주요 단계가 있습니다. 1. 사전 학습(Pre-Training) * 인터넷 텍스트(

By park jong hyun