-
Cross-platform deterministic float point, fast soft float point.
-
Fast soft float point for deterministic computing, That you can make deterministic plugin by use GFloat to replace float-point. like:
- Physics Engine (Bullet、PhysX)
- AI Path Finding (Recast Navigation)
- AI Engine
-
Compare the overall performance of hard float IEEE-754 and GFloat numbers, They differ by no more than 500%, Refer to the multiply-add instructions for measuring the computing power of the graphics card. compare multiply and add function:
-
跨平台的确定性浮点数,高性能的软件浮点数
-
你可以使用GFloat替代各种中间件的浮点数,从而实现带确定性的计算,实现帧同步游戏逻辑,也可以实现加密货币计算逻辑,例如:
- 物理引擎(Bullet、PhysX)
- AI 寻路(Recast Navigation)
- AI 引擎
-
整体上GFloat与IEEE754的硬件浮点数float,性能差距在500%以内。参考显卡衡量计算能力的乘加指令,主要比较乘法和加法函数的性能:
-
IEEE-754 float
sign exponents(8 bits) fractions(23 bits) 31 30 29 ... 24 23 22 21 ... 1 0 $\mathbf{X}_{IEEE754} = (-1)^\mathbf{sign} \times (1.\mathbf{fraction}) \times 2 ^{\mathbf{exponent} - 127}$
-
GFloat
sign fractions(23 bits) exponents(8 bits) 31 30 29 ... 9 8 7 6 ... 1 0 $\mathbf{X}_{GFloat} = (-1)^\mathbf{sign} \times (\mathbf{fraction}) \times 2 ^{\mathbf{exponent} - 127}$
- Several important functions compare, for more information to view TestAndBenchMark
- Call every function 1000000 Times, get the float vs GFloat time
Platform | Win64 | Win64 | iOS | OSX | Android |
---|---|---|---|---|---|
CPU | Ryzen-5950X | i9-12900H | Apple A15 | Apple M1Pro | HiSilicon-KIRIN-990 |
float vs GFloat | float vs GFloat | float vs GFloat | float vs GFloat | float vs GFloat | |
Add | 0.63 vs 2.63 ms | 0.44 vs 1.48ms | 0.43 vs 1.85 ms | 0.34 vs 2.24 ms | 0.89 vs 8.76 ms |
Mul | 0.70 vs 1.14 ms | 0.52 vs 0.79 ms | 0.42 vs 0.78 ms | 0.34 vs 0.93 ms | 0.62 vs 2.10 ms |
Sin | 10.20 vs 8.39 ms | 8.6 vs 3.15 ms | 3.6 vs 4.9 ms | 2.29 vs 5.28 ms | 11.58 vs 15.75 ms |
Sqrt | 1.08 vs 9.29 ms | 0.7 vs 6.2 ms | 0.83 vs 5.64 ms | 0.64 vs 6.06 ms | 0.65 vs 15.77 ms |
Exp | 2.06 vs 10.83ms | 2.15 vs 24.52ms | 5.52 vs 7.03 ms | 5.75 vs 6.52 ms | 6.06 vs 20.90 ms |
- Four OS platform projects for fast and easy to start test&benchmark
Target Platform | Compiler | Project |
---|---|---|
Win | Visual Studio 2022 | deterministic/deterministic_float.sln |
MacOS | XCode 13.4 | deterministic/deterministic_float.xcodeproj |
iOS | XCode 13.4 | deterministic/deterministic_float_ios.xcodeproj |
Android | Android studio 4.0 | deterministic/deterministic_float_android |
Operation System | Win64 | MacOS | iOS | Android |
---|---|---|---|---|