update c++ complication rules

This commit is contained in:
dian.yuan 2026-01-15 14:38:22 +08:00
parent 3fd719e30d
commit ae39851162
8 changed files with 166 additions and 15 deletions

View file

@ -1,6 +1,6 @@
LOCAL_PATH := $(call my-dir)
LLM_SDK_PATH := $(LOCAL_PATH)/../../01_src
3RDPARTY_PATH := $(LOCAL_PATH)/../../3rdparty
LLM_SDK_PATH := $(LOCAL_PATH)/../../../../amlnn-toolkit/npu_runtime/llmsdk
3RDPARTY_PATH := $(LOCAL_PATH)/../../../dependency
$(warning $(LOCAL_PATH))
include $(CLEAR_VARS)
@ -8,11 +8,10 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := main.cpp
LOCAL_C_INCLUDES := \
$(LLM_SDK_PATH)/jni \
$(3RDPARTY_PATH)/include \
$(LLM_SDK_PATH)/include \
LOCAL_LDFLAGS := \
-L$(LLM_SDK_PATH)/libs/arm64-v8a -lllmsdk
-L$(LLM_SDK_PATH)/android/arm64-v8a -lllmsdk
LOCAL_LDLIBS := -llog -ldl -lm -fuse-ld=ld

View file

@ -0,0 +1,11 @@
#!/bin/bash
if [ ! -d "$NDK_PATH" ]; then
echo "Error: NDK_PATH '$NDK_PATH' not found."
echo "Please set NDK_PATH environment variable to your Android NDK directory."
exit 1
fi
$NDK_PATH/ndk-build \
NDK_PROJECT_PATH=. \
APP_BUILD_SCRIPT=./Android.mk \
NDK_APPLICATION_MK=./Application.mk

View file

@ -63,8 +63,6 @@ int main(int argc, char **argv)
return -1;
}
printf("\nWelcome to Amlogic LLM Demo!\n");
LLMContext context;
AML_LLMInitConfig init_config;
memset(&init_config, 0, sizeof(AML_LLMInitConfig));
@ -90,6 +88,31 @@ int main(int argc, char **argv)
MyUserData my_data;
memset(&my_data, 0, sizeof(MyUserData));
printf("***************************************************\n");
printf("* *\n");
printf("* _____ _ _ _ _____ __ __ *\n");
printf("* | ___|| \\ | | | || _ |\\ \\ / / *\n");
printf("* | |__ | \\| | | || | | | \\ \\_/ / *\n");
printf("* | __| | . ` | | || | | | \\ / *\n");
printf("* | |___ | |\\ |__| || |_| | | | *\n");
printf("* |_____||_| \\_|\\___/ \\___/ |_| *\n");
printf("* *\n");
printf("* _ __ __ _ ____ _____ _____ ____*\n");
printf("* / \\ | \\/ | | / __ \\ / ____|_ _/ ___|*\n");
printf("* / _ \\ | \\ / | | | | | | | __ | || | *\n");
printf("* / ___ \\| |\\/| | | | | | | | |_ | | || | *\n");
printf("* / / \\ \\ | | | |___| |__| | |__| |_| || |___ *\n");
printf("* /_/ \\_\\_| |_|______\\____/ \\_____|_____\\____|*\n");
printf("* *\n");
printf("* _ _ __ __ *\n");
printf("* | | | | | \\/ | *\n");
printf("* | | | | | \\ / | *\n");
printf("* | | | | | |\\/| | *\n");
printf("* | |____| |____| | | | *\n");
printf("* |______|______|_| |_| *\n");
printf("* *\n");
printf("***************************************************\n");
printf("\nType your prompt and press Enter.\n");
printf("Commands: [exit] to quit, [new_talk] to reset context.\n");

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View file

@ -35,5 +35,56 @@ ADLA2: A311D2_3.2T / S905X5_4T
| TinyLlama-1.1B-Chat-v0.4 | S905X5 | w8a8 | 64 | 320 | 256 | 733.01 | 6.28 | 1.11 |
## Compile
### CPP
To compile the CPP project using Android NDK, follow these steps:
1. **Get the llmsdk library and header files**:
Clone the `amlnn-toolkit` repository to get the necessary libraries for compilation.
```bash
# Clone to the parent directory of amlnn-model-playground
git clone https://github.com/Amlogic-NN/amlnn-toolkit.git
```
2. **Set the NDK path**:
```bash
export NDK_PATH=/your/ndk/path/android-ndk-r25c
```
3. **Add NDK to your PATH**:
```bash
export PATH=$NDK_PATH:$PATH
```
4. **Compile**:
Navigate to the `cpp` directory and run `build-android.sh`:
```bash
cd examples/LLMs/cpp
./build-android.sh
```
5. **Run**:
Push the compiled executable, model, and tokenizer to your Android device.
Optional configuration:
- **Push `llmsdk.so`**: If not already present on the device, push it to `/data/local/tmp`.
- **Set permissions**:
```bash
chmod +x demo_llm_main
```
- **Set environment variable**:
```bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/vendor/lib64/:/data/local/tmp
```
Then execute:
```bash
./demo_llm_main Qwen2.5-1.5B-Instruct-F16_quant_i8_t7c.adla tokenizer.json
```
## Result
![llm-result](./model/llm_result.png)
| Banner | Inference Result |
| :---: | :---: |
| ![llm-result0](./model/llm-result0.png) | ![llm-result](./model/llm_result.png) |