본문 바로가기
Alchitecture

전력 장벽과 멀티코어, 성능 벤치마크

by 보라코끼리 2021. 12. 31.
728x90

- 본 문서는 KOCW 의 [컴퓨터구조] - 영남대학교 최규상 교수님의 강의 2주차 2강을 보고 정리한 내용입니다.

Power Trends

  • poser wall (전력 장벽) : 전압은 제곱으로 곱해지기 때문에 전압을 2배 낮추게 되면 전력은 4배 적어도 동일한 양의 capacity load 와 frequency 를 유지할 수 있지만 2004년 부터 전압을 낮추면 전류가 새어나가는 상황이 되어 더이상의 전압을 낮출 수 없게 되어 이러한 방법으로 성능을 개선하는 것이 불가능하게 되었다. 이러한 현상을 전력 장벽이라 한다.
  • 칩의 전력 소모량
    Power = Capacitive load * Voltage^2 * Frequency

 

Reducing Power

  • 요즘의 컴퓨터들은 전력 소모를 줄이기 위해 많은 노력을 한다.
  • ex) 새로운 CPU를 설계
    • capacitive load 85%, voltage 15%, frequency 15%
    •  P new     C old * 0.85 * (V old * 0.85)^2 * F old * 0.85     
      ------- = ------------------------------------------------ = 0.85^4 = 0.52
       P old                C old * V old^2 * F old
      기존의 cpu보다 52% 의 전력소모량을 보인다.
  • 전력 장벽 (power wall) 
    • 전압을 더이상 낮추지 못한다
    • 열을 더이상 낮추지 못한다
    • => 전력 소모가 많아진다
  • 2004년부터는 다른 방법으로 성능을 개선하고자 한다. -> Multi-Core

 

Multiprocessors

  • 2004년을 기점으로 컴퓨터의 성능을 개선하기 위해 사용되는 방법
  • 하나의 칩 안에 프로세서를 한 개 이상 사용하는 구조이다.
  • 병렬 (parallel) 프로그래밍을 사용해야 한다
    • 기존의 시퀀스 프로그래밍이 아닌 병렬 구조를 가져야 한다.
    • 시퀀스 프로그래밍에서는 하드웨어가 알아서 여러개의 프로그램을 실행해주는 instruction level parallelism 구조를 가졌다.
      • 프로그래머는 신경쓰지않고 프로그램을 짜면 된다.
    • 병렬 프로그래밍에서는 프로그래머가 신경쓸 것이 많아진다
      • 성능을 위한 프로그래밍
      • load balancing : 여러 일을 나눴을 때 하나의 일이 비슷한 load 를 가져야 한다.
      • 통신 및 동기화 최적화 (optimizing communication and synchronization)

 

SPEC CPU Benchmark

  • Standard Performance Evaluation Corp (SPEC) : 성능을 측정해주는 벤치마크 프로그램을 만드는 회사
    • CPU, I/O, Web 과 관련된 성능을 측정하는 벤치마크 프로그램을 만든다.
  • SPEC CPU2006
    • 2006년에 만들어진 CPU측정 프로그램
    • 여러 개의 프로그램을 실행해서 총 실행 시간을 활용한다.
      • I/O 에 관한 부분은 무시할 정도이기 때문에 CPU 성능에 초점을 맞췄다.
    • 표준으로 잡은 reference machine 과 비교하여 성능을 비교할 수 있다.
    • CINT2006(integer), CFP2006(floating-point) 로 구별된다.
  • Geometric mean : 전체 평균 -> 값이 클수록 성능이 더 좋다

 

SPEC Power Benchmark

  • 서버의 전력소비를 측정
    • ssj_ops/sec : 초당 서버 사이드 자바 오퍼레이션 수
    • power : Watts (Joules/sec)
    • => 전체 : watt 당 서버 사이드 자바 오퍼레이션 수로 측정
      • 값이 클수록 성능이 좋다

 

최종 결론

  • 가격 대비 성능이 향상되고 있다
    • 무어의 법칙에 의거함
  • 추상화 계층
    • 하드웨어와 소프트웨어
  • 명령어 집합 구조 (instruction set architecture)
    • 하드웨어/소프트웨어 인터페이스
  • 실행 시간 (execution time) : 성능 측정에 가장 좋음
  • 전력 (power) 은 성능의 제한 요소이다.
    • 멀티코어를 사용하여 성능을 개선하고자 한다
    • 멀티코어는 병렬 구조를 통해 설계된다.

 

Pitfall :  Amdahl's Law

  • 컴퓨터의 어느 한 부분을 성능 향상 시키면 전체 성능은 비례하여 향상된다.
  •                   T affected
    T improved = -------------------- + T unaffected
                  improvement factor
  • 예) 곱하기 연산은 80s/100s 를 차지한다.
    • 곱하기 연산의 성능을 향상시켜 전체 성능을 5배 향상시키고 싶다
    •       80
      20 = ---- + 20
            n
            
               80 (곱하기 연산) 
      100/5 = --------------- + 20 (곱하기 연산 제외)
                 n (구할 수)
    • n 이 무한대로 갈  때에만 가능하다 -> 불가능하다
    • 곱하기 연산의 성능 향상만으로는 전체 성능의 5배 향상은 불가능하다.

 

Fallacy : Low Power at Idle

  • i7 power banchmark
    • At 100% load: 258W
    • At 50% load : 170W (66%)
    • At 10% load : 121W (47%)
    • -> load 와 전력 소모는 비례하지 않다.
  • Google data center
    • 대부분 10 ~ 50% load 만 사용
    • 100% load 는 전체 시간의 1%도 안된다.
  • 프로세서를 만들 때 load 에 비례되도록 전력소모를 만드는 것이 필요하다 => 앞으로 필요한 기술

 

Pitfall : MIPS as a Performance Metric

  • MIPS : Milions of Instructions Per Second ( 초당 몇 백만 개의 명령을 실행하는가)
    • 컴퓨터마다 ISA 가 다르다.
    • 명령마다 복잡도가 다르다.
    •           Instruction count
      MIPS = -----------------------
              Execution time * 10^6
              
                    Instruction count             Clock rate
           = --------------------------------- = ------------
              Instruction count * CPI             CPI * 10^6
             ------------------------- * 10^6
                    Clock rate
    • CPI 는 CPU 에 따라 달라질 수도 있고 프로그램에 따라 달라질 수도 있다.
    • => MIPS 는 정확한 성능 측정 단위라고 할 수 없다.
    • => SPEC CPU Benchmark 등이 더 정확한 측정 방법이다.

 

CPU Time = Instruction Count * CPI * Clock Cycle Time
  • Performance = 1/Execution time 을 구할 수 있다.
728x90