Mojo Academy · 강의

수치 정확성 검증하기

기준 결과와 비교해 확인합니다.

레슨 4/413개 단계

수치 정확성 검증하기은(는) CoddyKit의 무료 Mojo Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Mojo Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Mojo Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

빠르지만 틀리면 쓸모없습니다

최적화된 커널은 올바른 답을 계산할 때만 의미가 있습니다. 속도 향상을 신뢰하기 전에 항상 검증하십시오.

기준 구현 유지하기

단순하고 명백하게 올바른 버전을 보관하십시오. 이 버전은 모든 빠른 커널이 일치해야 하는 진실의 원천인 기준 구현입니다.

부동 소수점은 정확하지 않습니다

부동 소수점 연산은 반올림을 수행하므로 합산 순서를 바꾸면 마지막 자릿수가 달라질 수 있습니다. 최적화된 결과가 조금 다르더라도 잘못된 것은 아닐 수 있습니다.

정확히 같은지 비교하지 않기

반올림 때문에 부동 소수점 값을 ==로 비교해서는 안 됩니다. 아주 작은 차이 때문에 올바른 코드가 망가진 것처럼 보일 수 있습니다.

if fast == ref:  # fragile, avoid

허용 오차로 비교하기

대신 값들이 작은 허용 오차 범위 안에서 가까운지 확인하십시오. 차이가 엡실론보다 작으면 같은 값으로 처리합니다.

if abs(fast - ref) <= 1e-5:
    pass  # close enough

절대 오차와 상대 오차

절대 오차는 실제 차이이고, 상대 오차는 크기에 따라 그 차이를 조정한 값입니다. 큰 수에서는 공정한 비교를 위해 상대 오차를 확인해야 합니다.

rel = abs(fast - ref) / abs(ref)

모든 원소 확인하기

전체 결과를 순회하며 각 셀을 검사합니다. 허용 오차를 벗어난 하나의 불일치만으로도 최적화 과정에서 문제가 생겼음을 알 수 있습니다.

for i in range(n):
    if abs(fast[i] - ref[i]) > tol:
        print("mismatch at", i)

가장 큰 차이 추적하기

확인한 차이 중 가장 큰 값을 기록합니다. 모든 원소에서의 최대 오차는 커널 상태를 보여 주는 명확한 단일 지표입니다.

경계 사례 테스트하기

빈 입력, 원소 하나만 있는 입력, SIMD 너비로 나누어떨어지지 않는 홀수 크기를 시도하십시오. 경계 사례는 꼬리 처리 버그를 빠르게 드러냅니다.

알려진 정답 사용하기

항등 행렬을 곱하거나 1로 이루어진 벡터를 더해 보십시오. 예측 가능한 입력을 사용하면 손으로도 답을 검증할 수 있습니다.

확인 자동화하기

불일치가 발생하면 즉시 실패하도록 작은 테스트로 검증을 감싸십시오. 변경할 때마다 실행하면 회귀 문제가 지나치는 일을 막을 수 있습니다.

빠른 확인

SIMD matmul의 결과가 기준 구현과 0.0000007만큼 다릅니다. 무엇을 결론 내려야 합니까?

복습

빠른 코드를 신뢰할 수 있는 기준 구현과 비교하고, ==가 아니라 허용 오차를 사용하십시오. 경계 사례와 알려진 정답을 확인하고 검증을 자동화하십시오. ✅

무료로 시작

AI 튜터와 함께 Mojo을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“수치 정확성 검증하기” 강의는 무료인가요?

네 — “수치 정확성 검증하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Mojo Academy 강의 전체를 잠금 해제할 수 있습니다. Mojo Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“수치 정확성 검증하기”에서 뭘 배우나요?

기준 결과와 비교해 확인합니다. 브라우저에서 직접 실행하는 실습 코드로 Mojo Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Mojo Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Mojo Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“수치 정확성 검증하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Mojo Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Mojo Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Mojo에서 텐서 모델링하기
  2. 행렬 곱셈 단계별로 만들기
  3. 내적 최적화하기
  4. 수치 정확성 검증하기
← Mojo Academy(으)로 돌아가기