test
(−1)符号部 × 2指数部 × 仮数部
$${(-1)^{\text{符号部}} \times 2^{\text{指数部}} \times \text{仮数部}}$$
| 符号 | 指数部 | 仮数部 | 有効桁数 | |
|---|---|---|---|---|
| FP32 | 1bit | 8bit | 23bit | 6~7桁 |
| FP16 | 1bit | 5bit | 10bit | 3~4桁 |
| BF16 | 1bit | 8bit | 7bit | 3桁 |
| FP8 | 1bit | 4bit | 3bit | 1~2桁 |
| FP4 | 1bit | 2bit | 1bit | 1桁未満 |
gantt
title Quantization Timeline
dateFormat YYYY-MM-DD
axisFormat %Y
section IEEE 754
FP16 : 2008-08-01, 2026-06-08
section Google
BF16 : 2018-05-01, 2026-06-08
section OCP / NVIDIA
FP8 : 2022-09-01, 2026-06-08
FP8_scaled : 2022-09-01, 2026-06-08
MXFP8 : 2023-10-17, 2026-06-08
NVFP4 : 2024-03-18, 2026-06-08
| FP32 | FP16 | BF16 | FP8 | FP8_scaled | MXFP8 | FP4 | |
|---|---|---|---|---|---|---|---|
| NVIDIA | |||||||
| RTX 5000(Blackwell) | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| RTX 4000(Ada Lovelace) | ○ | ○ | ○ | ○ | ○ | × | × |
| RTX 3000(Ampere) | ○ | ○ | ○ | × | × | × | × |
| RTX 2000(Turing) | ○ | ○ | × | × | × | × | × |
| GTX 1000(Pascal) | ○ | △ | × | × | × | × | × |
| AMD | |||||||
| RX 9000 (RDNA4) | ○ | ○ | ○ | ○ | ○ | × | × |
| RX 7000 (RDNA3) | ○ | ○ | ○ | × | × | × | × |
| RX 6000 (RDNA2) | ○ | ○ | × | × | × | × | × |
| RX 5000 (RDNA1) | ○ | ○ | × | × | × | × | × |
| Intel | |||||||
| Arc B (Battlemage) | ○ | ○ | ○ | × | × | × | × |
| Arc A (Alchemist) | ○ | ○ | ○ | × | × | × | × |
// プラグインをグローバルに登録(必須) Chart.register(ChartDataLabels);
const rawData = [ { name: 'FP32', size: 35.2, mae: 100.0, ssim: 100.0 }, { name: 'FP16', size: 17.6, mae: 96.2, ssim: 96.6 }, { name: 'BF16', size: 17.6, mae: 95.6, ssim: 95.2 }, { name: 'MXFP8', size: 10.3, mae: 94.2, ssim: 93.3 }, { name: 'FP8_scaled', size: 10.1, mae: 93.5, ssim: 93.2 }, { name: 'FP8', size: 8.8, mae: 87.5, ssim: 73.3 }, { name: 'NVFP4', size: 6.8, mae: 88.4, ssim: 78.9 } ];
const maeData = rawData.map(d => ({ x: d.size, y: d.mae, name: d.name })); const ssimData = rawData.map(d => ({ x: d.size, y: d.ssim, name: d.name }));
const ctx2 = document.getElementById('chartjs1').getContext('2d');
new Chart(ctx2, { type: 'scatter', data: { datasets: [ { label: 'MAE Similarity', data: maeData, backgroundColor: 'rgb(255, 99, 132)', borderColor: 'rgb(255, 99, 132)', pointRadius: 4, datalabels: { color: 'rgb(255, 99, 132)', align: 'top', anchor: 'end', formatter: value => value.name } }, { label: 'SSIM Similarity', data: ssimData, backgroundColor: 'rgb(54, 162, 235)', borderColor: 'rgb(54, 162, 235)', pointRadius: 4, datalabels: { color:'rgb(54, 162, 235)', align: 'bottom', anchor: 'start',
formatter: value => value.name
}
}
]
},
options: {
aspectRatio: 0.71,
plugins: {
title: {
display: true,
text: 'Model Quantization: MAE and SSIM Similarity',
},
tooltip: {
callbacks: {
label: context => {
const pt = context.raw;
return `${pt.name} — Size: ${pt.x} GB, Similarity: ${pt.y}%`;
}
}
}
},
scales: {
x: {
min: 0,
max: 20,
reverse: true,
title: {
display: true,
text: 'Size (GB)',
},
},
y: {
min: 70,
max: 100,
title: {
display: true,
text: 'Similarity (%)',
},
}
}
}
});
| vs_FP32 | MAE_Similarity | SSIM_Similarity | Size |
|---|---|---|---|
| FP32 | 100% | 100% | 35.2 GB |
| FP16 | 96.2 % | 96.6 % | 17.6 GB |
| BF16 | 95.6 % | 95.2 % | 17.6 GB |
| MXFP8 | 94.2 % | 93.3 % | 10.3 GB |
| FP8_scaled | 93.5 % | 93.2 % | 10.1 GB |
| FP8 | 87.5 % | 73.3 % | 8.8 GB |
| NVFP4 | 88.4 % | 78.9 % | 6.8 GB |
gantt
title GPU Series Roadmap
dateFormat YYYY-MM-DD
tickInterval 12month
axisFormat %Y
section NVIDIA
GTX 1000 : 2016-05-27, 2026-06-08
RTX 2000 : 2018-09-20, 2026-06-08
RTX 3000 : 2020-09-17, 2026-06-08
RTX 4000 : 2022-10-12, 2026-06-08
RTX 5000 : 2025-01-30, 2026-06-08
section AMD
RX 5000 : 2019-07-07, 2026-06-08
RX 6000 : 2020-11-18, 2026-06-08
RX 7000 : 2022-12-13, 2026-06-08
RX 9000 : 2025-03-06, 2026-06-08
section Intel
Arc A : 2022-03-30, 2026-06-08
Arc B : 2024-12-13, 2026-06-08
function createChart1() { const ctx = document.getElementById('chartjs1').getContext('2d');
const labels = ['FP32', 'FP16', 'BF16', 'MXFP8', 'FP8_scaled', 'FP8', 'NVFP4'];
const colors = [ 'rgb(201, 203, 207)', // Gray 'rgb(54, 162, 235)', // Blue 'rgb(75, 192, 192)', // Cyan 'rgb(153, 102, 255)', // Purple 'rgb(255, 99, 132)', // Red 'rgb(255, 159, 64)', // Orange 'rgb(255, 205, 86)', // Yellow ];
const datasets = [ { label: 'Generation Time', data: [361.4, 98.3, 96.9, 112.8, 73.4, 92.1, 90.4], colors: colors // 各データに対応する色の配列 } ];
chartInstance = new Chart(ctx, {
type: 'bar',
data: {
labels: labels,
datasets: datasets.map(ds => ({
label: ds.label,
data: ds.data,
backgroundColor: ds.colors.map(c => c.replace('rgb', 'rgba').replace(')', ', 0.2)')),
borderColor: ds.colors,
borderWidth: 1
}))
},
options: {
indexAxis: 'y',
aspectRatio: 0.71,
scales: {
x: {
title: { display: true, text: 'Time (sec)' },
grid: { display: false }
},
y: {
stacked: false,
grid: { display: false }
}
},
plugins: {
title: { display: true, text: 'Model Quantization: Generation Time' },
legend: { display: false },
datalabels: {
display: true,
anchor: 'end',
align: 'right',
formatter: (value) => {
return value.toFixed(1);
}
}
}
}
});
}
| Generation_Time | Time (sec) | Size |
|---|---|---|
| FP32 | 361.4 | 35.2 GB |
| FP16 | 98.3 | 17.6 GB |
| BF16 | 96.9 | 17.6 GB |
| MXFP8 | 112.8 | 10.3 GB |
| FP8_scaled | 73.4 | 10.1 GB |
| FP8 | 92.1 | 8.8 GB |
| NVFP4 | 90.4 | 6.8 GB |