cd ~ git clone https://github.com/KhronosGroup/glslang.git cd glslang python3 update_glslang_sources.py mkdir build && cd build export LDFLAGS="-lstdc++fs" /opt/cmake/bin/cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 make -j$(nproc) sudo make install which glslangValidator
shaderc 설치
cd ~ git clone https://github.com/google/shaderc.git cd shaderc python3 utils/git-sync-deps mkdir build && cd build export LDFLAGS="-lstdc++fs" /opt/cmake/bin/cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 \ -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON \ -DSPIRV_SKIP_EXECUTABLES=ON make glslc_exe -j$(nproc) sudo cp glslc/glslc /usr/local/bin/ which glslc glslc --version
$ git status On branch master Your branch is up to date with 'origin/master'.
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory)
build : b10068-571d0d540 model : /home/jetson/llm/Qwen3.5-0.8B-Q4_0.gguf ftype : Q4_0 modalities : text
available commands: /exit or Ctrl+C stop or exit /regen regenerate the last response /clear clear the chat history /read <file> add a text file /glob <pattern> add text files using globbing pattern
> 안녕? 안녕하세요! 어시, 어떻게 도와드릴 수 있을까요?
[ Prompt: 21.4 t/s | Generation: 9.1 t/s ]
> 안녕? 안녕하세요! 어시, 어떻게 도와드릴 수 있을까요?
[ Prompt: 23.0 t/s | Generation: 9.1 t/s ]
> 너에 대해 소개 안녕하세요! 저는 인공지능(AI) 기술의 능력을 활용하여 정보를 제공하거나 논리적 사고를 도와줄 수 있는 **공급 서비스 봇 (Assistant)**입니다.
나는 다음과 같은 역할을 수행할 수 있습니다: * **정보 제공**: 지식 기반의 정보를 검색하고 요약 또는 정리해 줄 수 있습니다. * **논리적 분석**: 문장 구조나 논리 논리를 분석하여 설명을 돕습니다. * **문제 해결**: 질문에 답하거나 상황을 분석할 수 있습니다. * **대화 및 학습**: 대화와 학습을 통해 사용자 경험을 개선해 줍니다.
이러한 기능을 통해 **AI**를 대신할 수 있는 인간과 유사한 능력으로 **사용자**에게 도움을 줄 수 있습니다.
어떤 내용을 원하시는가요? (예: 답변, 설명, 대화, 학습 자료 등)
[ Prompt: 21.8 t/s | Generation: 8.5 t/s ]
> 코드 작성 python hello world 출력 네, 안녕하세요! 저는 인공지능(AI) 기술의 능력을 활용하여 정보를 제공하거나 논리적 사고를 도와드릴 수 있는 서비스 봇입니다.
제대안은 **Python**을 사용하여 `print` 함수로 `hello world`를 출력하는 코드를 작성해 드립니다.
```python print("hello world") ```
이 코드를 실행하면 다음 문장이 출력됩니다: `hello world`
혹시 다른 언어 (예: JavaScript, Java 등) 의 `hello world` 예제를 작성하고 싶으시다면 말씀해 주세요!
build : b10068-571d0d540 model : /home/jetson/llm/Qwen3.5-0.8B-Q4_0.gguf ftype : Q4_0 modalities : text
available commands: /exit or Ctrl+C stop or exit /regen regenerate the last response /clear clear the chat history /read <file> add a text file /glob <pattern> add text files using globbing pattern
> 안녕? 안녕하세요! 네, 알겠습니다. 저는 인공지능으로 대화하고 정보를 제공해 드릴 수 있는 도구입니다. 무엇을 도와드릴까요? 😊
[ Prompt: 5.9 t/s | Generation: 3.3 t/s ]
> 너에 대해 소개해줘 안녕하세요! 네, 알겠습니다. 저는 인공지능으로 대화하고 정보를 제공해 드릴 수 있는 도구입니다. 무엇을 도와드릴까요? 😊
[ Prompt: 9.2 t/s | Generation: 3.3 t/s ]
> 파이썬으로 현재 디렉토리 목록 보는 프로그램 작서앻줘ㅏ 프라이썬으로 현재 디렉토리 목록을 보고 싶으신가요? 😊
이제 바로 `dir` 명령어에 대한 설명부터 실행 방법까지 알려드릴게요.
### 📂 디렉토리 목록을 표시하는 명령어
프라이썬에서 파일이나 디렉토리를 표시하려면 먼저 `dir` 명령어를 사용합니다.
```bash cd <디렉토리명> ```
예를 들어, `C:\Users\박\Documents`를 표시하려면: ```bash cd C:\Users\박\Documents ``` **단순히 `dir`을 입력하면 현재 디렉토리를 표시할 수 있습니다.**
---
### 🛠️ 실행 방법
#### 1. **프라이썬을 실행하기** 프라이썬은 웹 브라우저로 작동하는 프로그램으로, 브라우저에서 직접 실행해 볼 수 있습니다.
**단순 브라우저에서 실행하기:** * **Chrome/Edge/ChromeOS:** `https://www.python.org/` 에서 `dir` 명령어 추가하기 (F12 또는 `F11`를 누ار) * **Mac OS:** `Finder` → `Extensions` → `File Explorer` → `Python` → `dir`
**프라이썬을 설치하기:** 1. `https://www.python.org/` 에서 `Install Python` 클릭 2. 설치 후 `~` 경로에 추가되면, 브라우저에서 `file://` 주소창을 입력하고 입력한 URL 을 보시면 됩니다.
---
### 💻 기본 실행 예시
```python # 위 설명에서 예시처럼, 현재 디렉토리를 확인 dir ```
혹시 특정 파일이나 디렉토리를 찾으셨다면 `dir` 대신 `find` 명령어도 사용할 수 있습니다. ```bash find <디렉토리명> -name "파일명" ```
$ sshfs 명령어 'sshfs' 을(를) 찾을 수 없습니다. 그러나 다음을 통해 설치할 수 있습니다: sudo apt install sshfs
$ sudo apt install sshfs 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료 다음 새 패키지를 설치할 것입니다: sshfs 0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. 45.1 k바이트 아카이브를 받아야 합니다. 이 작업 후 126 k바이트의 디스크 공간을 더 사용하게 됩니다.
$ sudo nvpmodel -q NVPM WARN: fan mode is not set! NV Power Mode: MAXN 0
docker 로 서비스 실행
$ sudo docker run -p 8080:8080 -v /home/jetson/llm:/models ghcr.io/ggml-org/llama.cpp:server-vulkan --chat-template-kwargs "{\"enable_thinking\": false}" -m /models/Qwen3.5-0.8B-Q4_0.gguf -c 4096 --port 8080 --host 0.0.0.0 warn: LLAMA_ARG_HOST environment variable is set, but will be overwritten by command line argument --host 0.00.136.037 W Setting 'enable_thinking' via --chat-template-kwargs is deprecated. Use --reasoning on / --reasoning off instead. 0.00.136.924 I cmn common_param: common_params_print_info: verbosity = 3 (adjust with the `-lv N` CLI arg) 0.00.138.536 W srv llama_server: ----------------- 0.00.138.551 W srv llama_server: CORS is set to allow all origins ('*') and no API key is set 0.00.138.552 W srv llama_server: this can be a security risk (cross-origin attacks) 0.00.138.553 W srv llama_server: more info: https://github.com/ggml-org/llama.cpp/pull/25655 0.00.138.554 W srv llama_server: ----------------- 0.00.139.997 I srv load_model: loading model '/models/Qwen3.5-0.8B-Q4_0.gguf' 0.04.582.967 I srv load_model: initializing, n_slots = 4, n_ctx_slot = 4096, kv_unified = 'true' 0.04.681.224 I srv llama_server: model loaded 0.04.681.254 I srv llama_server: listening on http://0.0.0.0:8080 0.19.911.095 I slot get_availabl: id 3 | task -1 | selected slot by LRU, t_last = -1 0.19.911.286 I slot launch_slot_: id 3 | task 0 | processing task, is_child = 0 0.22.612.244 I slot print_timing: id 3 | task 0 | prompt eval time = 1093.85 ms / 13 tokens ( 84.14 ms per token, 11.88 tokens per second) 0.22.612.263 I slot print_timing: id 3 | task 0 | eval time = 1606.96 ms / 12 tokens ( 133.91 ms per token, 7.47 tokens per second) 0.22.612.266 I slot print_timing: id 3 | task 0 | total time = 2700.81 ms / 25 tokens 0.22.612.276 I slot print_timing: id 3 | task 0 | graphs reused = 11 0.22.612.345 I slot release: id 3 | task 0 | stop processing: n_tokens = 24, truncated = 0 0.32.329.433 I slot get_availabl: id 3 | task -1 | selected slot by LCP similarity, sim_best = 0.243 (> 0.100 thold), f_keep = 0.375 0.32.406.612 I slot launch_slot_: id 3 | task 14 | processing task, is_child = 0 0.37.382.135 I slot print_timing: id 3 | task 14 | prompt eval time = 2254.95 ms / 28 tokens ( 80.53 ms per token, 12.42 tokens per second) 0.37.382.154 I slot print_timing: id 3 | task 14 | eval time = 2720.41 ms / 18 tokens ( 151.13 ms per token, 6.62 tokens per second) 0.37.382.157 I slot print_timing: id 3 | task 14 | total time = 4975.37 ms / 46 tokens 0.37.382.160 I slot print_timing: id 3 | task 14 | graphs reused = 27 0.37.382.205 I slot release: id 3 | task 14 | stop processing: n_tokens = 54, truncated = 0 0.52.606.713 I slot get_availabl: id 3 | task -1 | selected slot by LCP similarity, sim_best = 0.471 (> 0.100 thold), f_keep = 0.611 0.52.606.847 I slot launch_slot_: id 3 | task 35 | processing task, is_child = 0 1.10.385.311 I slot print_timing: id 3 | task 35 | n_decoded = 100, tg = 6.70 t/s, tg_3s = 6.70 t/s 1.11.031.932 I slot print_timing: id 3 | task 35 | prompt eval time = 2847.89 ms / 37 tokens ( 76.97 ms per token, 12.99 tokens per second) 1.11.031.951 I slot print_timing: id 3 | task 35 | eval time = 15577.07 ms / 104 tokens ( 149.78 ms per token, 6.68 tokens per second) 1.11.031.954 I slot print_timing: id 3 | task 35 | total time = 18424.96 ms / 141 tokens 1.11.031.960 I slot print_timing: id 3 | task 35 | graphs reused = 129 1.11.032.011 I slot release: id 3 | task 35 | stop processing: n_tokens = 173, truncated = 0 3.50.029.790 I slot get_availabl: id 3 | task -1 | selected slot by LCP similarity, sim_best = 0.333 (> 0.100 thold), f_keep = 0.382 3.50.175.603 I slot launch_slot_: id 3 | task 142 | processing task, is_child = 0 3.57.905.059 I slot print_timing: id 3 | task 142 | prompt processing, n_tokens = 105, progress = 0.86, t = 7.73 s / 13.58 tokens per second 3.59.618.519 I slot print_timing: id 3 | task 142 | prompt processing, n_tokens = 128, progress = 0.98, t = 9.44 s / 13.56 tokens per second 4.10.877.834 I slot print_timing: id 3 | task 142 | prompt eval time = 9819.15 ms / 132 tokens ( 74.39 ms per token, 13.44 tokens per second) 4.10.877.855 I slot print_timing: id 3 | task 142 | eval time = 10882.92 ms / 72 tokens ( 151.15 ms per token, 6.62 tokens per second) 4.10.877.858 I slot print_timing: id 3 | task 142 | total time = 20702.07 ms / 204 tokens 4.10.877.862 I slot print_timing: id 3 | task 142 | graphs reused = 198 4.10.877.944 I slot release: id 3 | task 142 | stop processing: n_tokens = 269, truncated = 0
Jetson Nano는 Maxwell 아키텍처 기반 GPU(128 CUDA 코어)를 사용하며, compute capability는 5.3입니다.
CUDA 버전
Jetson Nano는 JetPack 버전에 따라 CUDA 버전이 결정됩니다. Nano에서 지원되는 마지막(최신) JetPack은 JetPack 4.6.x 계열이며, 이때 CUDA 10.2가 탑재됩니다. 참고로 Jetson Nano는 32비트 시절부터 나온 구형 라인업(2019년 출시)이라 JetPack 5.x(CUDA 11.x 이상)는 지원하지 않습니다. JetPack 5 이상은 Xavier, Orin 계열부터 지원됩니다
netson nano / maxwell 기반 128 cuda core
GPU NVIDIA Maxwell architecture with 128 NVIDIA CUDA® cores CPU Quad-core ARM Cortex-A57 MPCore processor Memory 4 GB 64-bit LPDDR4, 1600MHz 25.6 GB/s
$ cat /etc/nv_tegra_release # R32 (release), REVISION: 7.1, GCID: 29818004, BOARD: t210ref, EABI: aarch64, DATE: Sat Feb 19 17:05:08 UTC 2022
$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Feb_28_22:34:44_PST_2021 Cuda compilation tools, release 10.2, V10.2.300 Build cuda_10.2_r440.TC440_70.29663091_0
b10068 인데 cuda 12 와 cuda 13에 대해서 지원한다.
소스에서 빌드한다고 해서 될 게 아닌듯..
Windows:
Windows x64 (CPU) Windows arm64 (CPU) Windows arm64 (OpenCL Adreno) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.3 DLLs Windows x64 (Vulkan) Windows x64 (OpenVINO) Windows x64 (SYCL) Windows x64 (HIP)
[ 5%] Building CXX object tools/ui/CMakeFiles/llama-ui-embed.dir/embed.cpp.o /home/jetson/src/llama.cpp/tools/ui/embed.cpp:17:10: fatal error: filesystem: No such file or directory #include <filesystem> ^~~~~~~~~~~~ compilation terminated.
$ g++ --version g++ (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ sudo apt install gcc-8 g++-8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 update-alternatives: using /usr/bin/gcc-8 to provide /usr/bin/gcc (gcc) in auto mode
$ g++ --version g++ (Ubuntu/Linaro 8.4.0-1ubuntu1~18.04) 8.4.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ./llama-b8599/llama-cli ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libssl.so.3: version `OPENSSL_3.0.0' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.0.0' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.15' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by ./llama-b8599/llama-cli) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/jetson/llm/llama-b8599/libmtmd.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /home/jetson/llm/llama-b8599/libmtmd.so.0) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/jetson/llm/llama-b8599/libmtmd.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /home/jetson/llm/llama-b8599/libllama.so.0) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/jetson/llm/llama-b8599/libggml.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/jetson/llm/llama-b8599/libggml.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/jetson/llm/llama-b8599/libggml.so.0) ./llama-b8599/llama-cli: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/jetson/llm/llama-b8599/libggml-base.so.0) ./llama-b8599/llama-cli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /home/jetson/llm/llama-b8599/libggml-base.so.0)