# spacemit-llama.cpp
## spacemit-llama.cpp介绍

本发布包支持在进迭时空k1芯片（riscv64）上加速运行。

注意：

1. 进迭时空llama.cpp工具加速效果需使用q4_0_16_8量化模型以达到最优效果。

2. 为确保性能，需要设置线程数为4。

## 使用指南
### 模型量化
量化方式与公版llama.cpp相同，但需要使用Q4_0_16_8量化方式以获取最佳加速效果
```bash
# example
./llama-quantize --token-embedding-type q4_0_16x8  raw_model_path/qwen2.5-3b-f32.gguf  saved_model_path/qwen2.5-3b-q4_0_16_8.gguf  Q4_0_16_8  8 
```
### 模型运行
与公版llama.cpp相同
```bash
# example
./llama-cli -m your_model_path/qwen2.5-3b-q4_0_16_8.gguf  -co -sp -i -if -p "<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n"     --in-prefix "<|im_start|>user\n" --in-suffix "<|im_end|>\n<|im_start|>assistant\n"  -ngl 80 -n 512  --log-timestamps
```

## 性能
使用llama-bench进行性能测试，部分模型性能数据如下。

| model name     | prefill@64t（t/s） | decode@64t(t/s) |
| :-----:        | :----:             | :----:          |
| qwen2.5-0.5b   | 107.10             | 16.34           |
| qwen2.5-1.5b   | 32.11              | 5.46            |
| tinyllama-1.1b | 40.47              | 7.55            |
| llama3.2-1b    | 41.6               | 7.32            |
| gemma2-2b      | 18.96              | 2.72            |