host: local-device (Jetson Orin Nano Super 8GB) date: 2026-07-10 runtime: ollama 0.31.1 power_mode_at_test: MAXN_SUPER (NV Power Mode id=2) protocol: PLAN-edge-limits-2026-07.md #4-1 (7-8B級モデルの可否と速度) === pull結果 === ollama pull qwen2.5:7b -> success (exit 0), 4.7 GB, id 845dbda0ea48 ollama pull nemotron3-nano:4b -> FAILED: "Error: pull model manifest: file does not exist"(PLAN記載のタグ名は存在しない) ollama pull nemotron-3-nano:4b -> success (exit 0), 2.8 GB, id 6cc467f05439(代替タグ名で発見。GGUF配布あり) === ollama show qwen2.5:7b === Model architecture qwen2 parameters 7.6B context length 32768 embedding length 3584 quantization Q4_K_M Capabilities completion tools === ollama show nemotron-3-nano:4b === Model architecture nemotron_h parameters 4.0B context length 262144 embedding length 3136 quantization Q4_K_M requires 0.17.1 Capabilities completion === 実行コマンド(bench_llm.py経由、warmup num_predict=16破棄 + 本計測 num_predict=256 x2平均・temperature=0) === python3 /tmp/bench_llm.py 'qwen2.5:7b=qwen2.5-7b-instruct' 'nemotron-3-nano:4b=nemotron-3-nano-4b' 結果: 両モデルともモデルロード時点でHTTP 500 (Internal Server Error)。decode/TTFT/温度/電力は取得不可(ロードに到達しないためtegrastatsサンプリング区間も実質発生せず)。 再現性確認: qwen2.5:7bは直接curlで再度実行しても同一エラー・同一バッファサイズで再現(3回連続失敗、下記ログ参照)。単発の一過性エラーではないことを確認済み。 === curl /api/generate 実応答(生JSON・エラー) === qwen2.5:7b: {"error":"llama-server process has terminated: exit status 1: cudaMalloc failed: out of memory\nalloc_tensor_range: failed to allocate CUDA0 buffer of size 4370558976\nerror loading model: unable to allocate CUDA0 buffer"} nemotron-3-nano:4b: {"error":"llama-server process has terminated: exit status 1: cudaMalloc failed: out of memory\nalloc_tensor_range: failed to allocate CUDA0 buffer of size 2546620288\nerror loading model: unable to allocate CUDA0 buffer"} === journalctl -u ollama 抜粋(ollama自身のスケジューラ事前チェック値 + 実際のCUDA確保失敗) === --- qwen2.5:7b(1回目の失敗。以後2回リトライしても同一バッファサイズ・同一エラーで再現) --- time=2026-07-10T22:20:38+09:00 level=INFO msg="system memory" total="7.4 GiB" free="6.0 GiB" free_swap="3.3 GiB" time=2026-07-10T22:20:38+09:00 level=INFO msg="gpu memory" id=0 library=CUDA available="5.5 GiB" free="6.0 GiB" minimum="457.0 MiB" overhead="0 B" cmn common_param: device_info: - CPU : ARMv8 Processor rev 1 (v8l) (7619 MiB, 7619 MiB free) - CUDA0 : Orin (7619 MiB, 6095 MiB free) load_tensors: loading model tensors, this can take a while... (mmap = true, direct_io = false) NvMapMemAllocInternalTagged: 1075072515 error 12 NvMapMemHandleAlloc: error 0 ggml_backend_cuda_buffer_type_alloc_buffer: allocating 4168.09 MiB on device 0: cudaMalloc failed: out of memory alloc_tensor_range: failed to allocate CUDA0 buffer of size 4370558976 llama_model_load: error loading model: unable to allocate CUDA0 buffer llama_model_load_from_file_impl: failed to load model [GIN] 500 | 8.197528596s | POST "/api/generate" --- 再試行1回目(22:27:40) --- msg="system memory" total="7.4 GiB" free="6.1 GiB" free_swap="3.3 GiB" msg="gpu memory" id=0 library=CUDA available="5.5 GiB" free="6.0 GiB" minimum="457.0 MiB" overhead="0 B" (同一のcudaMalloc failedで失敗・alloc size 4370558976 で完全一致) --- 再試行2回目(22:30:33〜22:30:41) --- msg="system memory" total="7.4 GiB" free="6.0 GiB" free_swap="3.3 GiB" msg="gpu memory" id=0 library=CUDA available="5.5 GiB" free="5.9 GiB" minimum="457.0 MiB" overhead="0 B" ggml_backend_cuda_buffer_type_alloc_buffer: allocating 4168.09 MiB on device 0: cudaMalloc failed: out of memory alloc_tensor_range: failed to allocate CUDA0 buffer of size 4370558976 llama_model_load: error loading model: unable to allocate CUDA0 buffer --- nemotron-3-nano:4b(qwen失敗の直後に発生。バッファサイズは異なるが同一エラー種別) --- NvMapMemAllocInternalTagged: 1075072515 error 12 NvMapMemHandleAlloc: error 0 ggml_backend_cuda_buffer_type_alloc_buffer: allocating 2428.65 MiB on device 0: cudaMalloc failed: out of memory alloc_tensor_range: failed to allocate CUDA0 buffer of size 2546620288 llama_model_load: error loading model: unable to allocate CUDA0 buffer [GIN] 500 | 7.155143187s | POST "/api/generate" === 補足(推測・要検証として明記) === ollama自身の事前チェック(sched.go)は一貫して「GPU memory available 5.5 GiB」を報告しており、 qwen2.5:7bが要求する単一バッファ約4.07GiB(4370558976 bytes)は数値上収まるはずだが、 実際のcudaMalloc(NvMapMemAllocInternalTagged経由)は一貫して失敗する。 Jetsonのunified memory上のCUDA割り当ては「free -h上の空きメモリ量」だけでは決まらず、 連続領域の確保可否(フラグメンテーション、または実際に使えるNvMapカーブアウトの上限)に強く依存する可能性が高い。 これは本計測の解釈であり、Jetson内部のメモリアロケータの追加検証(本書の範囲外)なしに断定はできない。 === 最終状態確認 === ollama ps: 空(ロード中モデルなし。クラッシュ状態やハングは残っていない) systemctl is-active ollama: active free -h: total 7.4Gi / free 1.6Gi / available 6.1Gi(計測終了時点。健全)