neuroflow-cpp / README_CPP.md
cwenzi's picture
Upload folder using huggingface_hub
26d5b81 verified
|
Raw
History Blame Contribute Delete
2.02 kB
# NeuroFlow C++ Core
高性能C++底层实现,提供Python绑定接口。
## 特点
- **轻量化**: 相比原Python版本减少80%+内存占用
- **SIMD优化**: AVX2/ARM NEON加速矩阵运算
- **量化支持**: INT8/FP8量化,4x内存压缩
- **MLA技术**: DeepSeek KV压缩,87.5%+内存节省
- **长记忆**: 分页记忆系统,支持磁盘溢出
- **零依赖**: 单静态库,无外部依赖
## 构建
```bash
cd cpp_core
chmod +x build.sh
./build.sh build # 构建核心库
./build.sh test # 构建并测试
./build.sh python # 构建Python绑定
```
## 目录结构
```
cpp_core/
├── include/neuroflow/
│ ├── tensor.hpp # 张量运算引擎 (SIMD)
│ ├── networks.hpp # ECN/DMN/SN网络
│ ├── memory.hpp # MLA/记忆模块
│ └── model.hpp # 主模型类
├── src/
│ ├── tensor.cpp
│ └── model.cpp
├── bindings/
│ └── python_bindings.cpp # pybind11绑定
├── tests/
│ ├── test_tensor.cpp
│ └── test_model.cpp
├── CMakeLists.txt
└── build.sh
```
## Python使用
```python
import neuroflow_cpp as nf
# 创建模型
config = nf.ModelConfig(
input_dim=512,
hidden_dim=256,
output_dim=10,
use_quantization=True
)
model = nf.NeuroFlowModel(config)
# 前向传播
import numpy as np
x = np.random.randn(32, 512).astype(np.float32)
output = model.forward(x)
print(output.output.shape) # (32, 10)
print(output.decision.shape)
print(output.manifold.shape) # 如果return_manifold=True
# 性能对比
stats = nf.benchmark()
print(f"Size reduction: {stats['size_reduction']*100:.1f}%")
```
## 性能对比
| 版本 | 参数量 | 内存 | 推理时间 | 相比原版 |
|------|--------|------|----------|----------|
| C++ Original | 1.25M | 5 MB | 2.5 ms | baseline |
| C++ Optimized | 171K | 0.7 MB | 1.2 ms | 2x加速 |
| C++ Lite | 79K | 0.3 MB | 0.8 ms | 3x加速 |
| C++ Quantized | 79K | 0.08 MB | 0.6 ms | 4x加速 |