**浮點數(Floating Point, FP)**的概念最早可以追溯到20世紀初,但它在現代計算中的應用則是在電腦科學發展的中期開始逐漸普及。
1. 浮點數的起源
- 早期數值表示:
- 在 20 世紀初,數值運算主要依賴定點數(Fixed Point)表示法,這種方式限制了數值的範圍和精度,尤其是在需要處理極大或極小的數值時效率很低。
- 科學需求的推動:
- 浮點數的概念最早出現在數學和科學計算領域,目的是解決這些領域對於大範圍數值計算的需求。
- Alan Turing 和 John von Neumann 的貢獻:
- 20 世紀 40 年代,Alan Turing 和 John von Neumann 等計算科學的先驅提出了二進制浮點數表示法,為浮點數的理論奠定了基礎。
2. 浮點數的標準化
- 1950-1970 年代:早期的浮點運算
- 各種計算機製造商(如 IBM、UNIVAC)設計了自己專有的浮點數格式,這導致了兼容性問題。
- 例如,IBM 的 System/360 是第一批支持硬件浮點運算的計算機之一。
- 1985 年:IEEE 754 標準
- IEEE 754 浮點數標準於 1985 年由 IEEE(電氣與電子工程師學會)正式發布,統一了浮點數的格式和行為:FP32(單精度浮點數): 使用 32 位存儲數值。FP64(雙精度浮點數): 使用 64 位存儲數值。
- 這個標準解決了浮點數的精度和範圍問題,並成為現代計算機的基礎。
3. 浮點數在電腦科學中的應用
- 早期超級計算機:
- 浮點數在超級計算機中被廣泛應用,用於科學模擬(如天氣預測、分子動力學)等需要極高精度和範圍的計算。
- AI 和 GPU 的普及:
- 到 21 世紀初,浮點數被廣泛應用於圖形處理(GPU)和人工智慧(AI)運算中。
- NVIDIA CUDA 平台(2006 年) 將浮點數運算與並行計算結合,促進了深度學習和高性能運算的發展。
4. 現代的浮點數精度發展
- FP16 和 FP8 的引入:
- 為了滿足 AI 和大規模模型的需求,降低運算成本和能耗,FP16(16-bit)和 FP8(8-bit)等更低精度的浮點數被引入。
- FP8 精度(約 2022 年由 NVIDIA 首次實現)專為大語言模型(LLM)和深度學習的推論加速而設計。
總結
- 浮點數的概念起源: 在 20 世紀初的科學計算需求中逐漸萌芽。
- 標準化進程: 1985 年的 IEEE 754 標準奠定了現代浮點數的基礎。
- 現代應用: 隨著 AI 和 GPU 的發展,浮點數的精度從高精度(FP64、FP32)向低精度(FP16、FP8)逐漸演進,以適應不同場景的性能和能效需求。
浮點數的歷史顯示了計算科學在應對不斷增長的數據規模和運算需求時的創新過程。