update c++ complication rules
This commit is contained in:
parent
3fd719e30d
commit
ae39851162
8 changed files with 166 additions and 15 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
11
examples/LLMs/cpp/build-android.sh
Executable file
11
examples/LLMs/cpp/build-android.sh
Executable 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
|
||||
|
|
@ -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");
|
||||
|
||||
|
|
|
|||
BIN
examples/LLMs/model/llm-result0.png
Normal file
BIN
examples/LLMs/model/llm-result0.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
|
|
@ -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
|
||||

|
||||
|
||||
| Banner | Inference Result |
|
||||
| :---: | :---: |
|
||||
|  |  |
|
||||
Loading…
Add table
Add a link
Reference in a new issue