본문 바로가기
팬리스 인클로저의 방열 핀과 열 패드, 연산 모듈, 온도 센서, 그리고 열 경로 밖에 분리 설치한 카메라 헤드와 링 조명 검사 스테이션 개념도
엣지 AI

팬리스 엣지 디바이스는 왜 오후에 느려질까

EDGE AI

외기 40 °C에서 15 W를 쓰는 팬리스 모듈은 시정수 25분으로 77.5 °C까지 오르는데, 5분 벤치마크는 그 상승의 18 %만 봅니다.

사출품 외관 검사기의 엣지 모듈을 열저항과 열용량으로 놓고 정상 상태 온도, 클록 고정, 허용 열저항, 온도 경고를 차례로 계산했습니다.

읽는 시간 약 11분

팬리스 인클로저에 엣지 추론 모듈을 넣은 검사기는 출하 전 시험에서 대개 훌륭한 숫자를 보여 줍니다. 전원을 켜고 몇 분간 벤치마크를 돌리면 추론 시간이 일정하고 판정 지연도 흔들리지 않죠. 문제는 라인에 설치하고 몇 시간이 지난 오후부터 판정 지연이 들쭉날쭉해진다는 점입니다. 모델도 광학 셋업도 그대로인데 결과가 달라지고, 온도 로그가 없으면 원인이 열이라는 사실조차 드러나지 않습니다.

먼저 대상 표면입니다. 사출품은 무광 수지인지 광택 수지인지에 따라 같은 조명에서도 밝기가 크게 달라서, 광택면에서는 정반사를 피하려고 노출과 전처리를 손보게 되고 그만큼 연산 부하와 전력이 바뀝니다. 아래 열 계산은 무광 수지에 확산 링 조명을 비추는 조건입니다. 광택 수지처럼 반사가 강한 면에서는 전력 조건을 다시 잡아야 하므로 수치는 샘플 테스트 전 확언 불가입니다.

가정은 이렇습니다. 모듈은 15 W 전력 모드로 고정하고, 팬리스 인클로저의 열저항1은 2.5 °C/W, 모듈과 방열판, 하우징을 합친 열용량2은 600 J/°C, 설치 위치의 최고 외기는 40 °C입니다. 카메라는 2,048 × 1,536 px, 화소 3.45 μm에 16 mm 렌즈를 달아 렌즈 주점에서 약 155 mm 떨어진 곳(WD3 140 mm 이상 확보)에서 FOV 61.4 mm × 46.1 mm를 30 μm/px로 찍습니다. 모델의 추론 시간은 기준 클록에서 10 ms로 봅니다.

5분 벤치마크는 상승 곡선의 18 %만 본다

모듈과 방열판, 인클로저는 열을 담는 질량과 열을 외기로 내보내는 경로를 함께 가집니다. 일정한 전력 P를 넣으면 온도 상승은 1 − e−t/τ 꼴로 따라가고, 열시정수4 τ는 열저항 R과 열용량 C의 곱입니다. 최종 상승폭은 P × R로 정해지지만 그 값에 닿는 데는 τ의 몇 배가 걸리고, 팬리스 구조는 R이 크고 알루미늄 질량으로 C도 커서 τ가 수십 분 단위가 되기 쉽습니다.

가정한 값을 넣으면 τ는 2.5 × 600 = 1,500 s, 25분이고 정상 상태 온도는 40 + 15 × 2.5 = 77.5 °C입니다. 그런데 5분 벤치마크가 끝나는 시점의 상승폭은 최종값의 1 − e−0.2 ≈ 18 %라서 모듈은 46.8 °C에 머뭅니다. 벤치마크는 시원한 상태의 성능을, 라인은 뜨거운 상태의 성능을 보는 셈이에요. 그래서 저는 성능 측정을 최소 3τ, 최종 상승폭의 95 %에 닿은 뒤에 시작합니다.

클록이 오르내리면 추론 시간도 4.3 ms 흔들린다

온도 보호 로직은 한계 근처에서 클록을 내리고 온도가 떨어지면 다시 올립니다. 열시정수가 긴 인클로저 안에서 이 제어는 느린 진동이 되고, 추론 시간은 클록에 반비례해 함께 진동합니다. 판정 지연 분포는 두 봉우리로 갈라지고 p99는 느린 쪽 봉우리에 걸리니, 평균만 보면 조금 느려진 정도로 보여도 마감 쪽에서는 느린 상태가 기준이 됩니다. 이 현상이 서멀 스로틀링5입니다.

콜드 스타트 벤치마크 구간과 열평형 도달 과정, 서멀 스로틀링에 의한 추론 지연 지터와 클록 고정 시 안정된 지연을 비교한 그래프
짧은 벤치마크가 온도 상승의 어디까지를 보는지, 클록이 오르내릴 때와 고정했을 때 지연이 어떻게 다른지 견주어 보세요.

추론 시간 10 ms인 모델에서 스로틀링이 클록을 70 %로 내리면 추론 시간은 10 ÷ 0.7 ≈ 14.3 ms가 됩니다. 클록이 두 상태를 오가면 같은 모델에서 4.3 ms의 흔들림, 지터6가 생기죠. 처음부터 클록을 85 %로 고정하면 추론 시간은 11.8 ms로 평균은 느려지지만 흔들림이 사라집니다. 마감이 걸린 검사에서 저라면 10~14.3 ms를 오가는 쪽보다 11.8 ms에 고정된 쪽을 고릅니다.

전력 모드와 클록은 최고 성능을 기준으로 정하지 않고, 열평형에서 버틸 수 있는 값으로 고정합니다. 동적 클록 조정은 편의 기능일 뿐 검사 장비의 기본값으로 두지 않고, 재부팅한 뒤에도 같은 값으로 돌아오는지 확인해 둡니다. 클록 지터가 판정 지연의 꼬리를 어떻게 키우는지는 지연 예산 글에서 단계별 p99로 계산했습니다.

허용 열저항 2.0 °C/W는 한 줄 계산으로 나온다

방열 설계의 출발점은 방열판 크기보다 허용 열저항 Rmax = (목표 온도 − 최고 외기) ÷ 전력이라는 한 줄입니다. 스로틀링이 시작되는 온도는 모듈 제조사 문서가 정하고, 설계 목표 온도는 그보다 여유를 두고 잡습니다. 목표 온도와 최고 외기, 고정 전력이 정해지면 인클로저가 만족해야 할 열저항이 바로 나오고, 여기에 열 패드7 접촉, 방열 핀 방향, 설치 위치의 대류 조건이 더해집니다.

목표 온도 70 °C, 최고 외기 40 °C, 전력 15 W라면 Rmax는 (70 − 40) ÷ 15 = 2.0 °C/W입니다. 앞의 2.5 °C/W 인클로저는 이 조건을 넘으니 방열 핀 면적을 늘리거나 설치 위치를 바꿔야 합니다. 2.0 °C/W를 맞추면 τ는 2.0 × 600 = 1,200 s, 20분이 되고 검증 운전은 3τ인 60분 이상이 필요합니다. 60분을 돌린 시점의 모듈 온도는 68.5 °C로, 목표 70 °C에 아직 1.5 °C 못 미칩니다.

이 설계는 최고 외기에서 정확히 70 °C에 멈춘다는 뜻이기도 합니다. 외기가 45 °C인 자리라면 정상 상태가 75 °C로 올라가 여유가 사라지니, 저는 설치 후보지의 여름철 최고 기온을 열 계산의 입력으로 먼저 받아 둡니다.

온도 경고는 절대값보다 상승폭으로 건다

경고 온도를 목표보다 5 °C 낮은 65 °C로 두는 설정은 그럴듯해 보이지만, 이 셋업에 넣어 보면 문제가 드러납니다. 외기 40 °C인 날에는 정상 상태가 70 °C라서 전원을 켜고 약 36분 뒤면 65 °C에 닿고, 그 뒤로는 하루 종일 경고가 켜져 있게 됩니다. 늘 울리는 경고는 아무도 보지 않아요.

그래서 저는 경고를 절대 온도보다 외기 대비 상승폭에 겁니다. 설계값 P × R은 15 × 2.0 = 30 °C이므로 상승폭이 35 °C를 넘으면 경고를 내는데, 이는 겉보기 열저항이 2.33 °C/W로 커졌다는 뜻입니다. 외기가 몇 도든 같은 기준으로 방열 경로의 열화, 예를 들어 먼지가 쌓인 방열 핀이나 들뜬 열 패드를 잡아내고, 절대 온도 한계는 따로 70 °C에 둡니다. 이 방식에는 인클로저 근처의 외기 온도 센서 하나가 더 필요합니다.

로그는 사후 분석을 위한 장치입니다. 모듈 온도, 외기 온도, 클록, 전력, 추론 시간을 1초 간격으로 같은 타임스탬프에 기록해 두면, 지연 꼬리가 생긴 순간의 클록 값을 바로 대조해 열 문제와 소프트웨어 문제를 가를 수 있습니다. 소프트웨어 최적화로 열 설계나 광학 셋업의 결함을 덮을 수는 없으니, 로그는 원인을 가리키는 데까지만 쓰고 대책은 방열과 설치 쪽에서 찾습니다. 다섯 값을 1초마다 남기면 하루 86,400줄이 쌓이므로, 저는 지연 꼬리가 생긴 시각 앞뒤 10분만 따로 잘라 보관하는 규칙을 함께 둡니다.

카메라를 연산 모듈 열 경로 밖에 두는 이유

카메라 헤드를 연산 모듈과 같은 인클로저에 넣으면 초점이 밀리지 않을까 하는 걱정이 먼저 떠오릅니다. 제 계산으로는 이 배율에서 그 걱정은 크지 않습니다. 알루미늄 마운트 20 mm가 30 °C 데워진다고 가정하면 23 × 10−6/°C × 20 mm × 30 °C ≈ 14 μm 늘어나는데, 허용 착란원을 화소 2칸(6.9 μm)으로 잡은 상 쪽 초점 심도8는 f/8에서 2 × 8 × 6.9 μm × (1 + 0.115) ≈ 123 μm, f/2.8에서도 43 μm라 열팽창은 그 3분의 1 이하입니다.

그래도 저는 카메라를 연산 모듈의 열 경로 밖에 둡니다. 센서 온도가 오르면 암전류9 잡음이 늘어 3 px짜리 흑점처럼 콘트라스트가 낮은 결함의 신호 대 잡음비가 먼저 줄어들고, 렌즈와 브래킷이 데워졌다 식기를 되풀이하면 보정해 둔 위치 기준이 조금씩 흔들리기 때문이에요. 초점보다 잡음과 기준 위치가 먼저 문제가 되는 셈입니다.

90 μm 흑점과 열 조건을 한 표에 놓으면

광학 조건과 열 조건을 한 표에 나란히 놓았습니다. 열 쪽 숫자도 광학 숫자와 같은 방식으로 여유를 계산해 관리합니다.

구분① 최소 불량 크기② 광학 셋업 · WD③ 알고리즘 · 열 파라미터
표면 흑점(이물)직경 90 μm = 3.0 px (30 μm/px)2,048 × 1,536 px, 화소 3.45 μm, 16 mm 렌즈, FOV 61.4 × 46.1 mm, 확산 링 조명 45°, WD 140 mm 이상(주점 기준 물체 거리 약 155 mm)전력 모드 15 W 고정, 클록 85 % 고정, 추론 11.8 ms
파팅 라인 버폭 150 μm = 5.0 px카메라는 연산 인클로저와 분리 설치허용 열저항 2.0 °C/W, τ = 20분, 검증 운전 60분 이상
열 경고외기 대비 상승폭 35 °C 초과(겉보기 열저항 2.33 °C/W)인클로저 근처 외기 온도 센서 추가절대 한계 70 °C, 지터 기준 p99 − p50 ≤ 3 ms
로그1초 간격모듈 온도와 외기 온도를 함께 기록온도, 클록, 전력, 추론 시간을 같은 타임스탬프로

이 표에서 여유가 가장 적은 곳은 두 군데입니다. 흑점 90 μm는 3.0 px로 광학 분해능의 하한에 걸려 있고, 열 쪽은 2.0 °C/W 설계가 최고 외기에서 정확히 70 °C에 멈추니 여유가 0입니다. 그래서 설치 위치의 외기가 가정보다 높으면 광학보다 열 쪽이 먼저 무너지고, 그 신호는 상승폭 경고로 가장 일찍 잡힙니다.

팬이나 간헐 운전이 나은 경우

반대 선택이 유리한 자리도 있습니다. 분진과 유지보수 제약이 없는 설치 환경이라면 팬 구조가 열저항을 크게 낮춰 클록 고정값을 더 높게 잡을 수 있고, 이때는 필터 교체 주기를 관리하는 일이 전제가 됩니다. 검사가 몇 분씩 짧게 이뤄지고 사이에 긴 휴지가 있다면 τ에 닿기 전에 식으므로 콜드 스타트 성능이 실제 운전 성능에 가깝습니다. 판정 마감이 느슨한 오프라인 검사처럼 지연 흔들림이 불량 유출로 이어지지 않는 구조라면, 동적 클록 조정으로 평균 처리량을 높이는 편이 낫기도 합니다.

광택 사출품처럼 반사가 강한 재질은 조명과 노출 조건에 따라 전처리 부하와 전력 조건이 달라집니다. 그래서 위의 열 설계 수치를 다른 품목에 그대로 옮기는 것은 샘플 테스트 전 확언 불가이고, 저는 품목이 바뀌면 고정 전력에서 60분 연속 운전부터 다시 합니다.

현장 노트

열이 많은 자리에 팬리스 검사기를 둔다면 저는 벤치마크 숫자 대신 60분 이상 연속으로 돌린 뒤의 지연 분포를 봅니다. 하우징 온도가 오르면 클록이 단계적으로 내려가 지연 꼬리가 길어질 수 있고, 짧은 벤치마크는 그 구간을 보여 주지 않기 때문입니다. 1초 간격 온도와 클록 로그를 지연 기록과 같은 시간축에 겹쳐 보고, 필요하면 클록을 낮은 값으로 고정해 평균보다 지터를 줄이는 쪽을 택합니다. 경고는 외기 대비 상승폭 35 °C에 겁니다.

현장 체크포인트

출하 전 시험 계획서에 아래 항목이 들어 있는지 확인합니다. 열 쪽 항목은 광학 항목과 같은 무게로 적습니다.

  • WD 140 mm 이상이 링 조명 두께와 카메라 분리 설치 브래킷까지 포함해 실측으로 확보되는가? (주점 기준 물체 거리 약 155 mm)
  • 대상물이 무광 수지인지 광택 수지인지 구분하고, 그에 맞는 조명과 전처리 조건에서 전력을 쟀는가?
  • 성능 측정이 3τ 이상 연속 운전한 뒤, 열평형 상태에서 이뤄졌는가? (τ = 20분이면 60분)
  • 허용 열저항 Rmax를 설치 위치의 최고 외기 기준으로 계산했는가? (70 °C, 40 °C, 15 W → 2.0 °C/W)
  • 전력 모드와 클록이 고정되어 있고, 재부팅한 뒤에도 같은 값으로 돌아오는가?
  • 온도 경고를 외기 대비 상승폭에 걸고, 모듈 온도, 외기 온도, 클록, 전력, 추론 시간을 1초 간격으로 함께 기록하는가?

자주 묻는 질문

방열판을 키우면 클록을 고정하지 않아도 되나요?

방열판을 키워 열저항을 2.0 °C/W 아래로 내리면 스로틀링 온도에 닿을 일이 줄어 동적 클록으로도 지연이 흔들리지 않을 수 있습니다. 다만 최고 외기와 먼지 쌓임까지 넣어 계산한 여유가 남는지가 기준이고, 그 여유를 확인하기 전까지는 클록을 고정해 두는 편이 마감 쪽에서 안전합니다.

열시정수는 어떻게 재나요?

고정 전력으로 돌리면서 모듈 온도를 1초 간격으로 기록하면, 상승폭이 최종값의 63 %에 닿는 시각이 τ입니다. 이 셋업이라면 외기 40 °C에서 약 59 °C를 지나는 시각이 20분 근처에 나와야 하고, 그보다 크게 어긋나면 열용량이나 열저항 가정을 다시 봅니다.

용어 풀이

  • [1] 열저항 thermal resistance
    열이 흐르는 경로가 온도 차이를 만드는 정도입니다. 2.5 °C/W라면 1 W를 흘릴 때마다 외기보다 2.5 °C 더 뜨거워집니다. ↩
  • [2] 열용량 heat capacity
    온도를 1 °C 올리는 데 드는 열량입니다. 600 J/°C라면 1 °C 데우는 데 600 J이 듭니다. ↩
  • [3] WD working distance, 작동 거리
    렌즈 앞면에서 검사할 면까지의 거리입니다. 본문의 약 155 mm는 얇은 렌즈 근사로 렌즈 주점을 기준으로 계산한 물체 거리이고, 렌즈 앞면 기준 거리는 렌즈 도면으로 확인합니다. ↩
  • [4] 열시정수 thermal time constant
    열저항과 열용량의 곱으로, 온도가 최종 상승폭의 63 %까지 오르는 데 걸리는 시간입니다. 세 배가 지나면 95 %에 닿습니다. ↩
  • [5] 서멀 스로틀링 thermal throttling
    칩 온도가 한계에 가까워지면 클록을 낮춰 발열을 줄이는 보호 동작입니다. 클록이 내려간 만큼 연산이 느려집니다. ↩
  • [6] 지터 jitter
    같은 작업의 처리 시간이 실행할 때마다 흔들리는 정도입니다. 여기서는 p99와 p50의 차이로 잽니다. ↩
  • [7] 열 패드 thermal pad
    칩과 방열판 사이의 틈을 메워 열이 잘 건너가게 하는 부드러운 판입니다. 들뜨거나 눌린 정도가 달라지면 열저항이 커집니다. ↩
  • [8] 초점 심도 depth of focus
    센서 쪽에서 상이 또렷하게 유지되는 앞뒤 범위입니다. 본문 값은 허용 착란원을 화소 2칸(6.9 μm)으로 잡아 2 × F수 × 착란원 × (1 + 배율)로 계산했습니다. ↩
  • [9] 암전류 dark current
    빛이 없어도 센서 화소에 흐르는 전류입니다. 온도가 오르면 늘어나 영상에 잡음으로 섞입니다. ↩

참고 자료

  • 계산식: 열시정수 τ = R × C, 정상 상태 온도 = 외기 + P × R, 시각 t의 상승폭 = P × R × (1 − e−t/τ), 허용 열저항 Rmax = (목표 온도 − 최고 외기) ÷ P, 클록 비율에 따른 추론 시간 = 기준 추론 시간 ÷ 클록 비율, 겉보기 열저항 = 상승폭 ÷ P, 열팽창 = 선팽창 계수 × 길이 × 온도 변화, 상 쪽 초점 심도 ≈ 2 × N × c × (1 + m), 물체 거리 = f × (1 + 1/m)
  • 계산 가정: 전력 15 W, 열저항 2.5 °C/W(개선 후 2.0 °C/W), 열용량 600 J/°C, 최고 외기 40 °C, 목표 온도 70 °C, 기준 추론 시간 10 ms, 카메라 2,048 × 1,536 px(화소 3.45 μm), 16 mm 렌즈, FOV 61.4 × 46.1 mm, 알루미늄 선팽창 계수 23 × 10−6/°C, 마운트 길이 20 mm, 허용 착란원 6.9 μm

함께 읽으면 좋은 글 — Jetson Orin Nano 초기 셋업에서 막히는 네 가지 · 엣지 검사의 입력 드리프트는 정확도보다 먼저 보인다 · 평균 지연이 마감 안에 있어도 안전하지 않은 이유

2005년부터 생산설비의 기계설계와 프로젝트 관리를 맡아 온 엔지니어입니다. 설비에 들어가는 카메라·렌즈·조명을 수식과 공개 자료로 계산하고, 가정과 출처를 함께 밝혀 기록합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다