diff --git a/.github/workflows/chatglm_linux.yml b/.github/workflows/chatglm_linux.yml new file mode 100644 index 00000000..0e5a3529 --- /dev/null +++ b/.github/workflows/chatglm_linux.yml @@ -0,0 +1,34 @@ +name: chatglm-linux +on: + push: + branches: + - master + - 'feature/**' + paths: + - 'src/**' + - '.github/workflows/chatglm_linux.yml' + pull_request: + branches: [master] + paths: + - 'src/**' + - '.github/workflows/chatglm_linux.yml' + +concurrency: + group: linux-${{ github.ref }} + cancel-in-progress: true +permissions: + contents: read + +jobs: + linux_buil_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + # - name: download + # run: ./script/download_model.sh chatglm-6b + - name: build + run: ./script/linux_build.sh + - name: test + run: | + ls ./build + # ./build/cli_demo -m chatglm-6b \ No newline at end of file diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 00000000..91b99bfd --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,31 @@ +name: windows +on: + push: + branches: + - master + - 'feature/**' + paths: + - 'src/**' + - '.github/workflows/windows.yml' + pull_request: + branches: [master] + paths: + - 'src/**' + - '.github/workflows/windows.yml' + +concurrency: + group: windows-${{ github.ref }} + cancel-in-progress: true +permissions: + contents: read + +jobs: + windows_build_test: + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - uses: ilammy/msvc-dev-cmd@v1 + - name: build + run: powershell .\script\windows_build.ps1 + - name: test + run: dir build \ No newline at end of file diff --git a/script/download_model.sh b/script/download_model.sh new file mode 100755 index 00000000..ee7bdf15 --- /dev/null +++ b/script/download_model.sh @@ -0,0 +1,11 @@ +model=$1 +mkdir $model +cd $model +# download models +wget -c https://github.com/wangzhaode/mnn-llm/releases/download/$model-mnn/embedding.mnn +wget -c https://github.com/wangzhaode/mnn-llm/releases/download/$model-mnn/lm.mnn +for i in `seq 0 27` +do + wget -c https://github.com/wangzhaode/mnn-llm/releases/download/$model-mnn/block_$i.mnn +done +cd .. \ No newline at end of file diff --git a/script/linux_build.sh b/script/linux_build.sh new file mode 100755 index 00000000..bf40f06b --- /dev/null +++ b/script/linux_build.sh @@ -0,0 +1,21 @@ +# 1. clone MNN +git clone https://github.com/alibaba/MNN.git -b 2.6.3 --depth=1 + +# 2. build MNN +cd MNN +mkdir build +cd build +cmake -DMNN_LOW_MEMORY=ON .. +make -j8 +cd ../.. + +# 3. copy headers and libs +cp -r MNN/include/MNN include +mv MNN/build/libMNN.so MNN/build/express/libMNN_Express.so libs + +# 4. build mnn-llm +mkdir build +cd build +cmake .. +make -j8 +cd .. \ No newline at end of file diff --git a/script/windows_build.ps1 b/script/windows_build.ps1 new file mode 100644 index 00000000..a3887f53 --- /dev/null +++ b/script/windows_build.ps1 @@ -0,0 +1,28 @@ +# 1. clone MNN +git clone https://github.com/alibaba/MNN.git -b 2.6.3 --depth=1 + +# 2. build MNN +cd MNN +mkdir build +cd build +# cmake -DMNN_LOW_MEMORY=ON .. +cmake .. +cmake --build . +cd ../.. + +# 3. copy headers and libs +cp -r MNN/include/MNN include +mv MNN/build/libMNN.lib libs + +# 4. download pthread +wget -Uri https://gigenet.dl.sourceforge.net/project/pthreads4w/pthreads-w32-2-9-1-release.zip -OutFile "pthreads.zip" +Expand-Archive .\pthreads.zip +mv .\pthreads\Pre-built.2\lib\x64\pthreadVC2.lib libs +cp .\pthreads\Pre-built.2\include\*.h .\include\ + +# 5. build mnn-llm +mkdir build +cd build +cmake .. +cmake --build . +cd .. \ No newline at end of file