이 단원 목차
1. 완료한 작업과 측정 경계 정하기
입력 모양과 정밀도를 정하고 예측 100개처럼 같은 작업을 비교합니다. 칩, 보드, 호스트, 전원 콘센트 중 어느 경계에서 잴지 결정합니다. 전력은 단위 시간당 에너지이며 단위는 와트입니다. 실행 중 전력을 적분하고 완료한 작업 수로 나누면 작업당 에너지를 얻습니다. Horowitz의 계산 에너지 연구
2. 스위칭과 데이터 이동에 드는 비용 살펴보기
이상적인 전압원 로 정전용량 를 충전하면 전원에서 에너지 가 나옵니다. 절반은 축전기에 저장되고, 절반은 충전 경로에서 열로 소산됩니다. 방전하면 저장된 절반도 소산되므로 이상적인 충전·방전 한 주기의 비용은 입니다. 유효 정전용량이 클록 주기당 평균 번 충전되면 평균 동적 전력은 입니다. 누설, 메모리 전송, 전압 조정기, 냉각 비용은 별도로 더해집니다. 유효 정전용량과 스위칭 빈도는 회로와 작업에 따라 달라집니다.
3. 측정한 전력을 적분하기
동기화한 시각 의 전력 측정값을 라고 합니다. 표본 사이를 선형 보간하면 다음 식을 얻습니다.
이 식은 표본 간격이 일정하지 않아도 쓸 수 있습니다. 표본 사이의 좁은 전력 급증은 놓칠 수 있습니다. 같은 조건의 유휴 전력이 이면 는 그 기준을 초과한 에너지입니다. 총 에너지와 유휴 대비 증가분을 측정 경계, 기준 전력 측정 방법과 함께 기록합니다.
4. 두 실행의 에너지와 열 비교하기
40 W로 0.20초 실행하면 8 J를 사용합니다. 60 W로 0.10초 실행하면 6 J를 사용합니다. 예측이 각각 100개이면 예측당 80 mJ와 60 mJ입니다. 같은 조건의 유휴 전력 20 W를 기준으로 하면 두 실행의 추가 에너지는 각각 4 J입니다. 총 소비량과 유휴 상태 대비 증가분은 서로 다른 질문에 답합니다.
어디에서 언제 전력이 소산되는지에 따라 열을 제거하는 부담이 달라집니다. 더 빠른 실행이 총 에너지를 줄여도 순간 발열은 커질 수 있습니다. 열저항을 K/W로 근사하면 일정 전력에서 정상 상태 온도 상승은 입니다. 그 온도에 도달하려면 시간이 걸리며 과도 응답을 추정하려면 열용량도 필요합니다. 지속 실행을 비교할 때는 온도와 열 제한에 따른 성능 저하를 기록합니다.
5. Python으로 불균일한 표본 적분하기
from math import isclose
def integrate(times, powers, idle=0.0):
return sum((0.5 * (a + b) - idle) * (end - start)
for start, end, a, b in zip(times, times[1:], powers, powers[1:]))
runs = [
([0, 0.03, 0.20], [40, 40, 40]),
([0, 0.06, 0.10], [60, 60, 60]),
]
for times, powers in runs:
gross = integrate(times, powers)
extra = integrate(times, powers, idle=20)
assert isclose(extra, 4)
print(f"{gross:.1f} J gross, {extra:.1f} J incremental, {gross / 100 * 1000:.0f} mJ/prediction")
assert isclose(integrate([0, 0.05, 0.2], [10, 20, 50]), 6)
6. AI 추론의 에너지 비교 실험 설계하기
모델, 결과 품질 목표, 정밀도, 작업 수를 고정합니다. 전처리, 데이터 로딩, 냉각이 측정에 포함되는지 기록합니다. 준비 실행 후 반복 측정하고 온도 상태를 남깁니다. 작업이 짧으면 더 긴 배치를 실행하거나 충분히 빠른 계측기로 표본을 얻습니다. 작업당 에너지를 지연 시간, 처리량과 함께 비교하면 운영 조건별 선택의 근거를 얻을 수 있습니다.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.