%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

FP16 / bfloat16 / FP32 정밀도 변환기

입력하면 바로 계산됩니다.

입력값

FP16·bfloat16·FP32 변환 쉽게 이해하기 — 개념과 원리

머신러닝과 그래픽 하드웨어는 메모리와 대역폭을 아끼려고 수를 16비트로 저장하는 경우가 많습니다. 대표적인 16비트 형식은 비트를 나누는 방식이 다릅니다. IEEE 반정밀도(FP16)는 가수 비트를 더 많이 두고, bfloat16(bf16)은 FP32와 같은 지수 범위를 유지합니다. 이 도구는 10진수를 FP32, bfloat16, FP16에서 가장 가까운 값으로 반올림하고, FP16 비트 패턴과 각 형식의 기계 엡실론을 보여 주어 실제로 남는 정밀도를 확인하게 해 줍니다.

FP32, bfloat16, FP16의 비트 구성FP32는 1+8+23비트로 3.141590118, bfloat16(1+8+7)과 FP16(1+5+10)은 모두 3.140625를 저장합니다.3.14159를 세 형식에 담기FP323.141590118823bfloat163.14062587FP163.140625 · 0x4248510부호지수 비트가수 비트16비트 형식의 오차 ≈ 0.00097엡실론: FP16 9.77e-4 · bf16 7.81e-3
가수 비트가 적을수록 간격이 거칩니다. 16비트 두 형식 모두 3.14159를 3.140625로 반올림합니다.

계산 방법

원리

부동소수점 수는 2진법의 과학적 표기법으로, 지수가 크기를, 가수가 정밀도를 정합니다. 가수가 p비트이면 2ᵉ과 2ᵉ⁺¹ 사이의 수는 2^(e − p) 간격으로 놓이므로 상대 반올림 오차는 엡실론의 절반 이하입니다. FP16은 유효 숫자가 10진수로 약 3자리이지만 최댓값이 65504에 그칩니다. bf16은 유효 숫자가 2~3자리로 적지만 FP32처럼 약 3.4 × 10³⁸까지 표현하므로, 신경망 학습에서 넘침을 줄여 줍니다.

예제 풀이

  1. 입력 3.14159는 2와 4 사이에 있으므로 지수는 1입니다.
  2. FP32는 가수 23비트를 유지해 패턴 0x40490FD0, 값 3.141590118이 됩니다.
  3. bf16은 상위 절반 0x4049를 남기고, 버리는 절반 0x0FD0이 0x8000보다 작아 내림하므로 2 × (1 + 73/128) = 3.140625입니다.
  4. FP16의 가수는 round((3.14159 ÷ 2 − 1) × 1024) = round(584.29) = 584 = 0x248, 지수는 1 + 15 = 16이므로 비트는 0 10000 1001001000 = 0x4248입니다.
  5. 값은 2 × (1 + 584/1024) = 3.140625입니다. 584/1024가 73/128과 정확히 같아 두 16비트 형식이 같은 값이 되었습니다.
10진수 값에 따른 FP32 저장값 변화10진수 값에 따른 FP32 저장값 변화024680.7851.572.363.143.934.716.28예제 값: 3.14159011810진수
다른 값은 그대로 두고 “10진수”만 바꿔 계산기를 다시 돌린 결과입니다. 금색 점이 예제 값이며, 위에 값을 입력하면 내 값으로 다시 그려집니다.
10진수FP32 저장값
0.7850.7853969932
1.571.570790052
2.362.356189966
3.143.141590118
3.933.926990032
4.714.712379932
6.286.283180237

결과 해석

입력값과의 차이가 반올림 오차입니다. 3.14159 − 3.140625 ≈ 0.000965로 상대 오차는 약 3 × 10⁻⁴입니다. 3 부근에서 FP16 값은 2⁻⁹ ≈ 0.00195, bf16 값은 2⁻⁶ ≈ 0.0156 간격이므로 다른 입력에서는 bf16 오차가 더 크게 나타납니다.

흔한 실수

주의: FP16 변환은 정확히 중간인 경우 짝수가 아니라 위로 반올림하므로, 드문 동률 상황에서 하드웨어 변환과 마지막 자리 하나가 다를 수 있습니다. 중요한 값은 프레임워크로 확인하십시오.

자주 묻는 질문

FP16의 최댓값은 얼마입니까?

65504이고, 가장 작은 양의 정규수는 2⁻¹⁴ ≈ 6.10 × 10⁻⁵입니다.

GPU가 bfloat16을 지원하는 이유는 무엇입니까?

메모리는 FP16처럼 절반으로 줄이면서 FP32의 지수 범위를 유지해 학습이 안정적이기 때문입니다.

FP16은 반정밀도와 같은 말입니까?

네. IEEE 754의 binary16 형식입니다.

출처: IEEE 754-2019, IEEE Standard for Floating-Point Arithmetic · Intel, BFLOAT16 – Hardware Numerics Definition, 2018

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →