rust-kgdb 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -9
- package/package.json +8 -8
- package/rust-kgdb-napi.darwin-arm64.node +0 -0
- package/rust-kgdb-napi.node +0 -0
package/README.md
CHANGED
|
@@ -33,6 +33,39 @@
|
|
|
33
33
|
| **Bulk Insert** | 682 ms (100K) | 146K/sec | ⚠️ 73% speed (gap closing) |
|
|
34
34
|
| **Memory** | 24 bytes/triple | - | ✅ **25% better** |
|
|
35
35
|
|
|
36
|
+
### SIMD + PGO Optimizations (v0.1.8)
|
|
37
|
+
|
|
38
|
+
**Compiler-Level Performance Gains** - Zero code changes, pure optimization!
|
|
39
|
+
|
|
40
|
+
| Query | Before (No SIMD) | After (SIMD+PGO) | Improvement | Category |
|
|
41
|
+
|-------|------------------|------------------|-------------|----------|
|
|
42
|
+
| **Q1: 4-way star** | 283ms | **258ms** | ✅ **9% faster** | Good |
|
|
43
|
+
| **Q2: 5-way star** | 234ms | **183ms** | ✅ **22% faster** | Strong |
|
|
44
|
+
| **Q3: 3-way star** | 177ms | **62ms** | 🔥 **65% faster** | Exceptional |
|
|
45
|
+
| **Q4: 3-hop chain** | 254ms | **101ms** | 🔥 **60% faster** | Exceptional |
|
|
46
|
+
| **Q5: 2-hop chain** | 230ms | **53ms** | 🔥 **77% faster** | **BEST** |
|
|
47
|
+
| **Q6: 6-way complex** | 641ms | **464ms** | ✅ **28% faster** | Good |
|
|
48
|
+
| **Q7: Hierarchy** | 343ms | **198ms** | ✅ **42% faster** | Strong |
|
|
49
|
+
| **Q8: Triangle** | 410ms | **193ms** | ✅ **53% faster** | Strong |
|
|
50
|
+
|
|
51
|
+
**Key Results:**
|
|
52
|
+
- **Average Speedup**: **44.5%** across all 8 LUBM queries
|
|
53
|
+
- **Best Speedup**: **77%** (Q5 - 2-hop chain query)
|
|
54
|
+
- **Range**: 9% to 77% improvement (all queries faster!)
|
|
55
|
+
- **Distribution**: 3 exceptional (60%+), 2 strong (40-59%), 2 good (20-39%), 1 modest (9%)
|
|
56
|
+
|
|
57
|
+
**How PGO Works:**
|
|
58
|
+
1. **Instrumentation Build**: Compiler adds profiling hooks
|
|
59
|
+
2. **Profile Collection**: Run real workload (23 runtime profiles collected)
|
|
60
|
+
3. **Profile Merging**: Combine profiles into 5.9M merged dataset
|
|
61
|
+
4. **Optimized Rebuild**: Compiler uses runtime data for:
|
|
62
|
+
- Optimized hot paths (loops, function calls)
|
|
63
|
+
- Improved branch prediction
|
|
64
|
+
- Enhanced instruction cache locality
|
|
65
|
+
- Better CPU pipelining
|
|
66
|
+
|
|
67
|
+
**Hardware:** Tested on Intel Skylake with AVX2, BMI2, POPCNT optimizations.
|
|
68
|
+
|
|
36
69
|
## 📦 Installation
|
|
37
70
|
|
|
38
71
|
```bash
|
|
@@ -44,6 +77,24 @@ npm install rust-kgdb
|
|
|
44
77
|
- Node.js >= 14
|
|
45
78
|
- No additional dependencies required (native bindings included)
|
|
46
79
|
|
|
80
|
+
### Platform Support
|
|
81
|
+
|
|
82
|
+
| Platform | Architecture | Status | Notes |
|
|
83
|
+
|----------|-------------|--------|-------|
|
|
84
|
+
| **macOS** | x64 (Intel) | ✅ Fully Supported | SIMD+PGO optimized (AVX2) |
|
|
85
|
+
| **macOS** | arm64 (Apple Silicon) | ✅ Fully Supported | SIMD+PGO optimized (NEON) |
|
|
86
|
+
| **Linux** | x64 | ✅ Fully Supported | SIMD+PGO optimized (AVX2) |
|
|
87
|
+
| **Linux** | arm64 | ✅ Fully Supported | SIMD+PGO optimized (NEON) |
|
|
88
|
+
| **Windows** | x64 | ✅ Fully Supported | SIMD+PGO optimized (AVX2) |
|
|
89
|
+
| **Windows** | arm64 | ⏳ Coming Soon | Planned for v0.2.0 |
|
|
90
|
+
|
|
91
|
+
**SIMD Optimizations** (v0.1.8):
|
|
92
|
+
- **Intel/AMD (x64)**: AVX2, BMI2, POPCNT auto-vectorization
|
|
93
|
+
- **Apple Silicon (arm64)**: NEON auto-vectorization
|
|
94
|
+
- **Profile-Guided Optimization (PGO)**: Runtime profile-based code generation
|
|
95
|
+
|
|
96
|
+
**Native Bindings**: Pre-compiled binaries included for all platforms. No compilation required during `npm install`.
|
|
97
|
+
|
|
47
98
|
## 🎯 Quick Start
|
|
48
99
|
|
|
49
100
|
```typescript
|
|
@@ -323,17 +374,17 @@ npm test -- --testNamePattern="star query"
|
|
|
323
374
|
|
|
324
375
|
## 🤝 Contributing
|
|
325
376
|
|
|
326
|
-
Contributions are welcome! Please see [CONTRIBUTING.md](https://github.com/
|
|
377
|
+
Contributions are welcome! Please see [CONTRIBUTING.md](https://github.com/gonnect-uk/rust-kgdb/blob/main/CONTRIBUTING.md)
|
|
327
378
|
|
|
328
379
|
## 📄 License
|
|
329
380
|
|
|
330
|
-
Apache License 2.0 - See [LICENSE](https://github.com/
|
|
381
|
+
Apache License 2.0 - See [LICENSE](https://github.com/gonnect-uk/rust-kgdb/blob/main/LICENSE)
|
|
331
382
|
|
|
332
383
|
## 🔗 Links
|
|
333
384
|
|
|
334
|
-
- [GitHub Repository](https://github.com/
|
|
335
|
-
- [Documentation](https://github.com/
|
|
336
|
-
- [CHANGELOG](https://github.com/
|
|
385
|
+
- [GitHub Repository](https://github.com/gonnect-uk/rust-kgdb)
|
|
386
|
+
- [Documentation](https://github.com/gonnect-uk/rust-kgdb/tree/main/docs)
|
|
387
|
+
- [CHANGELOG](https://github.com/gonnect-uk/rust-kgdb/blob/main/CHANGELOG.md)
|
|
337
388
|
- [W3C SPARQL 1.1 Spec](https://www.w3.org/TR/sparql11-query/)
|
|
338
389
|
- [W3C RDF 1.2 Spec](https://www.w3.org/TR/rdf12-concepts/)
|
|
339
390
|
|
|
@@ -348,10 +399,10 @@ Apache License 2.0 - See [LICENSE](https://github.com/zenya/rust-kgdb/blob/main/
|
|
|
348
399
|
|
|
349
400
|
## 🎯 Roadmap
|
|
350
401
|
|
|
351
|
-
- [x] v0.1.8: WCOJ execution
|
|
352
|
-
- [ ] v0.1.9: SIMD
|
|
353
|
-
- [ ] v0.2.0:
|
|
354
|
-
- [ ] v0.3.0:
|
|
402
|
+
- [x] v0.1.8: WCOJ execution + SIMD + PGO optimizations (35-55% faster!)
|
|
403
|
+
- [ ] v0.1.9: Manual SIMD vectorization for 2-4x additional speedup
|
|
404
|
+
- [ ] v0.2.0: Windows ARM64 support + distributed query execution
|
|
405
|
+
- [ ] v0.3.0: Graph analytics and reasoning engines
|
|
355
406
|
|
|
356
407
|
---
|
|
357
408
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rust-kgdb",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "High-performance RDF/SPARQL database with 100% W3C compliance and WCOJ execution",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build:debug": "napi build --platform native/rust-kgdb-napi",
|
|
22
22
|
"prepublishOnly": "napi prepublish -t npm",
|
|
23
23
|
"test": "jest",
|
|
24
|
-
"version": "
|
|
24
|
+
"version": "0.1.9"
|
|
25
25
|
},
|
|
26
26
|
"keywords": [
|
|
27
27
|
"rdf",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"license": "Apache-2.0",
|
|
38
38
|
"repository": {
|
|
39
39
|
"type": "git",
|
|
40
|
-
"url": "https://github.com/
|
|
40
|
+
"url": "https://github.com/gonnect-uk/rust-kgdb"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@napi-rs/cli": "^2.18.0",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"*.node"
|
|
57
57
|
],
|
|
58
58
|
"optionalDependencies": {
|
|
59
|
-
"rust-kgdb-win32-x64-msvc": "0.1.
|
|
60
|
-
"rust-kgdb-darwin-x64": "0.1.
|
|
61
|
-
"rust-kgdb-linux-x64-gnu": "0.1.
|
|
62
|
-
"rust-kgdb-darwin-arm64": "0.1.
|
|
63
|
-
"rust-kgdb-linux-arm64-gnu": "0.1.
|
|
59
|
+
"rust-kgdb-win32-x64-msvc": "0.1.9",
|
|
60
|
+
"rust-kgdb-darwin-x64": "0.1.9",
|
|
61
|
+
"rust-kgdb-linux-x64-gnu": "0.1.9",
|
|
62
|
+
"rust-kgdb-darwin-arm64": "0.1.9",
|
|
63
|
+
"rust-kgdb-linux-arm64-gnu": "0.1.9"
|
|
64
64
|
}
|
|
65
65
|
}
|
|
Binary file
|
package/rust-kgdb-napi.node
DELETED
|
Binary file
|