You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: parser-ng-simd/README.md
+15-17Lines changed: 15 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# parser-ng-simd
2
2
3
-
### ParserNG 2.0.5
3
+
### ParserNG 2.0.7
4
4
5
5
High-performance, hardware-accelerated mathematical kernels for Java. **No JNI. No native binaries.** Powered entirely by the JDK Vector API and optimized for C2 loop fusion.
6
6
7
7
`parser-ng-simd` provides an architectural extension for ParserNG, enabling zero-dependency, tile-based bulk evaluations via `jdk.incubator.vector`. It compiles mathematical expression trees into vectorized loops optimized for L1/L2 cache residency, achieving near-native throughput directly on the JVM without the configuration overhead of complex native toolchains (such as ND4J/`libnd4j`).
8
8
9
9
For examples and more information:
10
10
11
-
-[SIMD-EXAMPLES.md](../parser-ng/BULK.md) — what’s new in 2.0.5
11
+
-[SIMD-EXAMPLES.md](../parser-ng/BULK.md) — what’s new in 2.0.7
12
12
13
13
---
14
14
@@ -18,30 +18,28 @@ For examples and more information:
18
18
19
19
Executed on an Intel Core i5-1135G7 environment running a JDK 24 Early Access build.
> 📊 **Note on Peak Efficiency:** An execution speed of `7.3 ns/element` for GELU translates to roughly 26 CPU cycles. This safely hits the theoretical throughput ceiling of what AVX2 combined with hardware `vdexp` intrinsics can process within a managed runtime.
22
+
| Operation | Matrix Scale: 70 x 70 | Matrix Scale: 100 x 100 | Matrix Scale: 200 x 200 |
> 📊 **Peak Hardware Efficiency:** A measurement of `2.00 ns/element` for a complex activation function like GELU equates to roughly 8 raw CPU cycles. This securely reaches the physical throughput ceiling of what AVX2 vector units combined with hardware `vdexp` primitives can achieve in a managed code layer.
|**parser-ng-simd**|**292 µs (7.3 ns/elt)**|**Pure Java Vector API (Direct SIMD)**|
32
+
|**parser-ng-simd**|**292 µs (2.00 ns/elt)**|**Pure Java Vector API (Direct SIMD)**|
33
33
34
34
35
-
*Data Scaling Boundary:* At extreme workloads (e.g., 67M+ records), computation throughput bounds shift toward physical DRAM bandwidth, where execution stabilizes at approximately `1.3x` faster than optimized scalar bytecode compilers.
36
-
37
35
---
38
36
39
37
### Key Architectural Pillars
40
38
41
-
1.**Tile-Based Workload Dispatch:** Compute tasks are split into deterministic block matrices (from $70 \times 70$ up to $200 \times 200$), ensuring data tiles remain completely resident within L1/L2 CPU caches while minimizing loop-bound orchestration overhead.
42
-
2.**C2 Loop Fusion:** The engine collapses composite abstract syntax trees (ASTs) into unified native vector loops. Sequential steps like `exp + tanh + FMA` resolve into 3 to 4 hyper-optimized AVX2 machine instructions.
43
-
3.**Pure Java Intrinsic Pipelines:** Built directly on JDK Vector API concepts (`FloatVector`, `VectorMask`), utilizing hardware-level primitive acceleration without relying on unsafe memory access blocks or third-party wrappers.
44
-
4.**Zero-Allocation Hot Paths:** Execution tracks pre-allocated internal memory frames. Buffer reuse prevents heap churning, entirely insulating math execution paths from Garbage Collection (GC) pauses.
39
+
40
+
1.**C2 Loop Fusion:** The engine collapses composite abstract syntax trees (ASTs) into unified native vector loops. Sequential steps like `exp + tanh + FMA` resolve into 3 to 4 hyper-optimized AVX2 machine instructions.
41
+
2.**Pure Java Intrinsic Pipelines:** Built directly on JDK Vector API concepts (`FloatVector`, `VectorMask`), utilizing hardware-level primitive acceleration without relying on unsafe memory access blocks or third-party wrappers.
42
+
3.**Zero-Allocation Hot Paths:** Execution tracks pre-allocated internal memory frames. Buffer reuse prevents heap churning, entirely insulating math execution paths from Garbage Collection (GC) pauses.
45
43
46
44
---
47
45
@@ -68,13 +66,13 @@ Include both the core module and the SIMD engine extension in your `pom.xml`:
Copy file name to clipboardExpand all lines: parser-ng/BULK.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# ParserNG 2.0.5
1
+
# ParserNG 2.0.7
2
2
3
3
An ultra-high-performance mathematical expression parsing and evaluation engine for Java. Version 2.0.x introduces a breakthrough **Block Vectorization Engine** (`VectorTurboEvaluator`) and `SIMDVectorTurboEvaluator` powered by the Java **Vector API** (`jdk.incubator.vector`).
4
4
@@ -39,12 +39,12 @@ To use SIMDVectorTurboEvaluator(e.g. on modern servers(JDK 21+) and laptops(JDK2
39
39
<dependency>
40
40
<groupId>com.github.gbenroscience</groupId>
41
41
<artifactId>parser-ng</artifactId>
42
-
<version>2.0.5</version>
42
+
<version>2.0.7</version>
43
43
</dependency>
44
44
<dependency>
45
45
<groupId>com.github.gbenroscience</groupId>
46
46
<artifactId>parser-ng-simd</artifactId>
47
-
<version>2.0.5</version>
47
+
<version>2.0.7</version>
48
48
</dependency>
49
49
```
50
50
@@ -53,7 +53,7 @@ To use VectorTurboEvaluator(e.g. on Android and legacy systems supporting <JDK21
0 commit comments