|
|
@@ -616,6 +616,7 @@ And after 4.45 hours, you will have the final perplexity.
|
|
|
|
|
|
### Android
|
|
|
|
|
|
+#### Building the Project using Android NDK
|
|
|
You can easily run `llama.cpp` on Android device with [termux](https://termux.dev/).
|
|
|
First, obtain the [Android NDK](https://developer.android.com/ndk) and then build with CMake:
|
|
|
```
|
|
|
@@ -630,6 +631,46 @@ Finally, copy the `llama` binary and the model files to your device storage. Her
|
|
|
|
|
|
https://user-images.githubusercontent.com/271616/225014776-1d567049-ad71-4ef2-b050-55b0b3b9274c.mp4
|
|
|
|
|
|
+#### Building the Project using Termux (F-Droid)
|
|
|
+Termux from F-Droid offers an alternative route to execute the project on an Android device. This method empowers you to construct the project right from within the terminal, negating the requirement for a rooted device or SD Card.
|
|
|
+
|
|
|
+Outlined below are the directives for installing the project using OpenBLAS and CLBlast. This combination is specifically designed to deliver peak performance on recent devices that feature a GPU.
|
|
|
+
|
|
|
+If you opt to utilize OpenBLAS, you'll need to install the corresponding package.
|
|
|
+```
|
|
|
+apt install libopenblas
|
|
|
+```
|
|
|
+
|
|
|
+Subsequently, if you decide to incorporate CLBlast, you'll first need to install the requisite OpenCL packages:
|
|
|
+```
|
|
|
+apt install ocl-icd opencl-headers opencl-clhpp clinfo
|
|
|
+```
|
|
|
+
|
|
|
+In order to compile CLBlast, you'll need to first clone the respective Git repository, which can be found at this URL: https://github.com/CNugteren/CLBlast. Alongside this, clone this repository into your home directory. Once this is done, navigate to the CLBlast folder and execute the commands detailed below:
|
|
|
+```
|
|
|
+cmake .
|
|
|
+make
|
|
|
+cp libclblast.so* $PREFIX/lib
|
|
|
+cp ./include/clblast.h ../llama.cpp
|
|
|
+```
|
|
|
+
|
|
|
+Following the previous steps, navigate to the LlamaCpp directory. To compile it with OpenBLAS and CLBlast, execute the command provided below:
|
|
|
+```
|
|
|
+cp /data/data/com.termux/files/usr/include/openblas/cblas.h .
|
|
|
+cp /data/data/com.termux/files/usr/include/openblas/openblas_config.h .
|
|
|
+make LLAMA_CLBLAST=1 //(sometimes you need to run this command twice)
|
|
|
+```
|
|
|
+
|
|
|
+Upon completion of the aforementioned steps, you will have successfully compiled the project. To run it using CLBlast, a slight adjustment is required: a command must be issued to direct the operations towards your device's physical GPU, rather than the virtual one. The necessary command is detailed below:
|
|
|
+```
|
|
|
+GGML_OPENCL_PLATFORM=0
|
|
|
+GGML_OPENCL_DEVICE=0
|
|
|
+export LD_LIBRARY_PATH=/system/vendor/lib64:$LD_LIBRARY_PATH
|
|
|
+./main (...)
|
|
|
+```
|
|
|
+
|
|
|
+For easy and swift re-execution, consider documenting this final part in a .sh script file. This will enable you to rerun the process with minimal hassle.
|
|
|
+
|
|
|
### Docker
|
|
|
|
|
|
#### Prerequisites
|