일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 초소형머신러닝
- 삼성코테
- bfs문제
- 컴퓨팅사고
- tinyml
- 알고리즘
- 임베디드 딥러닝
- DP문제
- 코딩테스트
- BFS
- 다이나믹프로그래밍
- 딥러닝
- 코테 문제
- 삼성역량테스트
- TensorFlow Lite
- 삼성코딩테스트
- 영상처리
- 코테
- sort
- 포스코 ai 교육
- MCU 딥러닝
- 그리디
- 포스코 AI교육
- 포스코 교육
- 삼성역테
- dfs
- dfs문제
- 자료구조
- DP
- tflite
- Today
- Total
코딩뚠뚠
[머신러닝 공부] Tiny ML -22 / 에너지 최적화 문제 본문
Chapter22. 에너지 최적화 문제
"
TinyML + 임베디드 장치에서의 에너지 소비를 줄이려면?
"
목차 :
- 대략적인 감 잡기
- 전체 시스템 전력소모 측정
- 모델 전력 사용량 추정
- 전력소모 개선
임베디드 장치(MCU)는 에너지를 거의 소비하지 않는다, 않아야 한다 는 특징이 있다.
그에 비해 서버CPU는 엄청난 전원이 필요하고, 스마트폰도 수 와트를 소비한다.
마이크로컨트롤러는 수밀리와트 미만의 전력으로 작동하여 작은 배터리로도 몇 개월~몇 년을 쓸수도 있다.
부하가 큰 작업을 한다면 불가능하니.. 전력사용량을 개선해야만 한다.
1. 대략적인 감 잡기
Network 요청은 RAM에서 정보를 읽는것보다 느리고 / SSD접근보다 HDD 접근이 더 느리다.
에너지 양에 대해서는 감이 없지만.. 이 감을 잡으려면 연산에 필요한 에너지를 추정하는 몇 가지 규칙을 숙지해야한다.
물론 부품마다 에너지 소모는 다르겠지만 대략적인 소모는 아래와 같다.
스마트폰의 부품 :
ARM Cortex A9 | 500~2000mW |
디스플레이 | 400mW |
액티브 셀 라디오 | 800mW |
블루투스모듈 | 100mW |
임베디드 부품 :
마이크 센서 | 300μW |
블루투스 LE (Low Energy) | 40mW |
Himax HM01B0 (흑백이미지센서) | 1mW |
Cortex-M4F | 1mW (48MHz) |
가속도계 | 1mW |
그렇다면 배터리는 어느정도의 에너지를 저장할 수 있을까?
CR2032 코인배터리 | 2500J - 1mW 1개월 사용 |
AA배터리 | 15000J - 1mW 6개월 사용 |
온도차를 이용한 발전 | 1cm^2 당 1~10W 얻음 |
태양광 모듈(실내조명) | 1cm^2 당 10μW 얻음 |
태양광 모듈(실외조명) | 1cm^2 당 10mW 얻음 |
이렇게 배터리와 소모전력을 대략적으로 알면 설계가 가능할 것이다.
2. 전체 시스템 전력소모 측정
부품 설계 시 전력소모를 확인 후에는 실제 시스템으로 구성하고 측정해보아야 한다.
추정치는 항상 실제와 일치하지는 않기 때문이다.
다양한 도구가 있으며 공대를 졸업했다면 알고있을.. 멀티미터가 유용하다.
또는 일정 용량의 배터리를 설치하고 실제로 얼마나 오래 지속되는지 직접 확인하는 방법이 있다.
이는 시간이 오래 걸릴 수는 있지만 모델링과 계산으로는 알기 힘든 문제를 모두 포착할 수 있다.
3. 모델의 전력 사용량 추정
하나의 추론을 실행하기 위한 시간 x 시간 동안의 전력 사용량
= 에너지 사용량
ex) 인체감지 어플리케이션에서의 모델
모델 : 6천만 건의 작업 실행
MCU : 48MHz ARM Cortex-M4 - 8bit 곱셈 덧셈을 2회씩 수행 가정
48,000,000/60,000,000=800ms
칩이 2mW를 사용하면 추론1회당 1.6mJ을 사용하게 된다.
4. 전력소모 개선
대략적인 전력소모를 알았으니 개선방법을 모색해야한다.
HW적 접근이 아닌 SW접근 방법으로 생각해보자.
(HW접근으로는 필요하지않은 부품의 전원off, 저전력부품으로 교체)
- 1. 듀티 사이클링
추론 호출 사이에 절전모드를 삽입하는 방법이다.
또는 비슷한 방식으로 명령 실행의 빈도를 줄이는 방법도 있다.
- 2. 캐스케이드 설계
ML 프로그램의 경우 스토리지 리소스 양을 쉽게 조절할 수 있으며 정확도가 급변하지 않는다는 장점이 있다.
이 특성을 활용하면 모델을 캐스케이드 방식으로 설계할 수 있다.
작은 모델로 돌리다가 이벤트가 발견되면 강력한 모델을 깨우는 방식이다.
한계 전력량은 만족해야겠지만 항상 큰 에너지를 사용하지는 않는다는 장점이 있다.
ex) 스마트폰의 Always On 음성 인터페이스 동작
끝
'공부 > ML&DL' 카테고리의 다른 글
[ML/DL] Batch Normalization 배치정규화 (2) | 2022.09.16 |
---|---|
[머신러닝 공부] Tiny ML -23 / 모델, 바이너리 크기 최적화 (0) | 2022.05.09 |
[머신러닝 공부] Tiny ML -21 / 최적화 문제 (0) | 2022.05.07 |
[머신러닝 공부] Tiny ML -20 / TF Lite (0) | 2022.04.28 |
[머신러닝 공부] Tiny ML -19 / 제스처인식 어플리케이션 -3 (0) | 2022.04.17 |