[GH-ISSUE #8058] CUSTOM_CPU_FLAGS="" / non avx2 build #30912

Closed
opened 2026-04-22 10:54:11 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @agreppin on GitHub (Dec 12, 2024).
Original GitHub issue: https://github.com/ollama/ollama/issues/8058

Originally assigned to: @dhiltgen on GitHub.

What is the issue?

sequel of #7640 Error: POST predict: Post "http://127.0.0.1:42623/completion": EOF

here is the command I used to build ollama:

make -j16 HIP_ARCHS=gfx1102 CUSTOM_CPU_FLAGS="" RUNNER_TARGETS=rocm dist

here is the relevant log part:

...
Dec 12 00:45:57 prox1 ollama[1632910]: ggml_cuda_init: found 1 ROCm devices:
Dec 12 00:45:57 prox1 ollama[1632910]:   Device 0: AMD Radeon™ RX 7600 XT, compute capability 11.0, VMM: no
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: ggml ctx size =    0.43 MiB
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloading 32 repeating layers to GPU
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloading non-repeating layers to GPU
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloaded 33/33 layers to GPU
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors:      ROCm0 buffer size =  1903.13 MiB
Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors:        CPU buffer size =    98.44 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_ctx      = 8192
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_batch    = 2048
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_ubatch   = 512
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: flash_attn = 0
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: freq_base  = 10000000.0
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: freq_scale = 1
Dec 12 00:45:58 prox1 ollama[1632910]: llama_kv_cache_init:      ROCm0 KV buffer size =  2560.00 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: KV self size  = 2560.00 MiB, K (f16): 1280.00 MiB, V (f16): 1280.00 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model:  ROCm_Host  output buffer size =     0.79 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model:      ROCm0 compute buffer size =   548.00 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model:  ROCm_Host compute buffer size =    21.01 MiB
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: graph nodes  = 1254
Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: graph splits = 2
Dec 12 01:32:55 prox1 ollama[1642790]: time=2024-12-12T01:32:55.520+01:00 level=INFO source=server.go:594 msg="llama runner started in 3.26 seconds"
Dec 12 01:32:55 prox1 ollama[1642790]: [GIN] 2024/12/12 - 01:32:55 | 200 |  3.426053264s |       127.0.0.1 | POST     "/api/generate"
Dec 12 01:33:06 prox1 ollama[1642790]: SIGILL: illegal instruction
Dec 12 01:33:06 prox1 ollama[1642790]: PC=0x7513232be656 m=5 sigcode=2
Dec 12 01:33:06 prox1 ollama[1642790]: signal arrived during cgo execution
Dec 12 01:33:06 prox1 ollama[1642790]: instruction bytes: 0xc4 0xe2 0x79 0x13 0xc0 0xc5 0xf0 0x57 0xc9 0xc5 0xf8 0x2e 0xc1 0xf 0x9b 0xc0
...

objdump -d ./dist/linux-amd64/lib/ollama/runners/rocm/ollama_llama_server shows avx instructions:

   d5d1c:	c4 e2 7d 78 c8       	vpbroadcastb %xmm0,%ymm1
   d646d:	c4 e2 7d 78 c8       	vpbroadcastb %xmm0,%ymm1
  27005a:	c4 e3 45 06 c6 03    	vperm2f128 $0x3,%ymm6,%ymm7,%ymm0
  27006a:	c4 e3 55 06 cc 03    	vperm2f128 $0x3,%ymm4,%ymm5,%ymm1
  270108:	c4 e3 7d 06 e0 00    	vperm2f128 $0x0,%ymm0,%ymm0,%ymm4
  270116:	c4 e3 45 06 d7 11    	vperm2f128 $0x11,%ymm7,%ymm7,%ymm2
  270242:	c4 e3 5d 02 e2 f0    	vpblendd $0xf0,%ymm2,%ymm4,%ymm4
...

Idem for ollama and libggml_rocm.so, .

I will try to find the origin of the byte-codes sequence '0xc4 0xe2 0x79 0x13 0xc0 0xc5 0xf0 0x57 0xc9 0xc5 0xf8 0x2e 0xc1 0xf 0x9b 0xc0'. If someone know how to do this, let us know.

Open questions:

  • origin of those avx instructions, ollama code or ROCm libs ?
  • how can I start the runner in a debugger ?

OS

Linux

GPU

AMD

CPU

Other

Ollama version

0.5.2-rc1-0-g6a6328a, 0.5.0-rc1-6-g1841309

Originally created by @agreppin on GitHub (Dec 12, 2024). Original GitHub issue: https://github.com/ollama/ollama/issues/8058 Originally assigned to: @dhiltgen on GitHub. ### What is the issue? sequel of #7640 Error: POST predict: Post "http://127.0.0.1:42623/completion": EOF here is the command I used to build ollama: ```sh make -j16 HIP_ARCHS=gfx1102 CUSTOM_CPU_FLAGS="" RUNNER_TARGETS=rocm dist ``` here is the relevant log part: ``` ... Dec 12 00:45:57 prox1 ollama[1632910]: ggml_cuda_init: found 1 ROCm devices: Dec 12 00:45:57 prox1 ollama[1632910]: Device 0: AMD Radeon™ RX 7600 XT, compute capability 11.0, VMM: no Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: ggml ctx size = 0.43 MiB Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloading 32 repeating layers to GPU Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloading non-repeating layers to GPU Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: offloaded 33/33 layers to GPU Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: ROCm0 buffer size = 1903.13 MiB Dec 12 00:45:57 prox1 ollama[1632910]: llm_load_tensors: CPU buffer size = 98.44 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_ctx = 8192 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_batch = 2048 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: n_ubatch = 512 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: flash_attn = 0 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: freq_base = 10000000.0 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: freq_scale = 1 Dec 12 00:45:58 prox1 ollama[1632910]: llama_kv_cache_init: ROCm0 KV buffer size = 2560.00 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: KV self size = 2560.00 MiB, K (f16): 1280.00 MiB, V (f16): 1280.00 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: ROCm_Host output buffer size = 0.79 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: ROCm0 compute buffer size = 548.00 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: ROCm_Host compute buffer size = 21.01 MiB Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: graph nodes = 1254 Dec 12 00:45:58 prox1 ollama[1632910]: llama_new_context_with_model: graph splits = 2 Dec 12 01:32:55 prox1 ollama[1642790]: time=2024-12-12T01:32:55.520+01:00 level=INFO source=server.go:594 msg="llama runner started in 3.26 seconds" Dec 12 01:32:55 prox1 ollama[1642790]: [GIN] 2024/12/12 - 01:32:55 | 200 | 3.426053264s | 127.0.0.1 | POST "/api/generate" Dec 12 01:33:06 prox1 ollama[1642790]: SIGILL: illegal instruction Dec 12 01:33:06 prox1 ollama[1642790]: PC=0x7513232be656 m=5 sigcode=2 Dec 12 01:33:06 prox1 ollama[1642790]: signal arrived during cgo execution Dec 12 01:33:06 prox1 ollama[1642790]: instruction bytes: 0xc4 0xe2 0x79 0x13 0xc0 0xc5 0xf0 0x57 0xc9 0xc5 0xf8 0x2e 0xc1 0xf 0x9b 0xc0 ... ``` objdump -d `./dist/linux-amd64/lib/ollama/runners/rocm/ollama_llama_server` shows avx instructions: ``` d5d1c: c4 e2 7d 78 c8 vpbroadcastb %xmm0,%ymm1 d646d: c4 e2 7d 78 c8 vpbroadcastb %xmm0,%ymm1 27005a: c4 e3 45 06 c6 03 vperm2f128 $0x3,%ymm6,%ymm7,%ymm0 27006a: c4 e3 55 06 cc 03 vperm2f128 $0x3,%ymm4,%ymm5,%ymm1 270108: c4 e3 7d 06 e0 00 vperm2f128 $0x0,%ymm0,%ymm0,%ymm4 270116: c4 e3 45 06 d7 11 vperm2f128 $0x11,%ymm7,%ymm7,%ymm2 270242: c4 e3 5d 02 e2 f0 vpblendd $0xf0,%ymm2,%ymm4,%ymm4 ... ``` Idem for ollama and libggml_rocm.so, . I will try to find the origin of the byte-codes sequence '0xc4 0xe2 0x79 0x13 0xc0 0xc5 0xf0 0x57 0xc9 0xc5 0xf8 0x2e 0xc1 0xf 0x9b 0xc0'. If someone know how to do this, let us know. Open questions: - origin of those avx instructions, ollama code or ROCm libs ? - how can I start the runner in a debugger ? ### OS Linux ### GPU AMD ### CPU Other ### Ollama version 0.5.2-rc1-0-g6a6328a, 0.5.0-rc1-6-g1841309
GiteaMirror added the buildbug labels 2026-04-22 10:54:11 -05:00
Author
Owner

@agreppin commented on GitHub (Dec 12, 2024):

Here is a full log of that problem, including strace:

ollama-strace-0.5.2-rc1-0-g6a6328a.log.gz

The illegal instruction is after a call to ioctl:

...
1652949 [0000741920524ded] ioctl(3, AMDKFD_IOC_ALLOC_MEMORY_OF_GPU, 0x7418a3df5f30) = 0
1652949 [0000741920524ded] ioctl(3, AMDKFD_IOC_MAP_MEMORY_TO_GPU, 0x7418a3df5f70) = 0
1652949 [000074191e4d65d6] --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x74191e4d65d6} ---
...

Seems to me that the amdgpu driver is the problem. (not sure, see edit 1)

Here is the script used to produce the log file:

#!/bin/sh
set -eux
LOG=ollama-strace.log
exec >$LOG
exec 2>&1
printf '# %s: ft=strace\n' vi
PWD=~/src/ollama
export LD_LIBRARY_PATH=$PWD/dist/linux-amd64/lib/ollama/runners/rocm:$PWD/dist/linux-amd64-rocm/lib/ollama
ldd $PWD/dist/linux-amd64/lib/ollama/runners/rocm/ollama_llama_server
env -i HOME=$HOME strace -f -i -v -s 16384 -o $LOG -A $PWD/dist/linux-amd64/bin/ollama serve 2>&1

edit 1:
librocblas.so.4.2.60204 contains a F16C (CPU feature) instruction, likely the cause of SIGILL:

c4 e2 79 13 c0       	vcvtph2ps %xmm0,%xmm0

found the issue for rocm-6.2.4, appears to be fixed in rocm-6.3.0:
https://github.com/ROCm/rocBLAS/issues/1422#issuecomment-2089026056

edit 2:
librocblas.so.4.2.60204 rebuilt without -mf16c, the issue seems fixed for my case !

but that question remains open:

  • ollama, libggml_rocm.so & rocm/ollama_llama_server have avx instructions, why ?

one is in libggml_rocm.so / llama/ggml-cuda/ggml-cuda.cu / ggml_cuda_init()

c4 e3 75 18 c9 01       vinsertf128 $0x1,%xmm1,%ymm1,%ymm1

edit 3:

make -f make/Makefile.rocm HIP_ARCHS=gfx1102 CUSTOM_CPU_FLAGS="" RUNNER_TARGETS=rocm print-GPU_COMPILER_CFLAGS print-GPU_COMPILER_CXXFLAGS print-GPU_COMPILER_CUFLAGS print-GPU_RUNNER_ARCH_FLAGS print-GPU_RUNNER_CPU_FLAGS

GPU_COMPILER_CFLAGS= -fPIC -D_GNU_SOURCE
GPU_COMPILER_CXXFLAGS= -fPIC -D_GNU_SOURCE
GPU_COMPILER_CUFLAGS=-fPIC -Wno-unused-function -std=gnu++17  -mf16c -mfma -c -O3 -DGGML_USE_CUDA -DGGML_BUILD=1 -DGGML_BACKEND_BUILD=1 -DGGML_SHARED=1 -DGGML_BACKEND_SHARED=1 -DGGML_CUDA_DMMV_X=32 -DGGML_CUDA_MMV_Y=1 -DGGML_SCHED_MAX_COPIES=4 -DGGML_USE_HIP -DGGML_USE_LLAMAFILE -DHIP_FAST_MATH -D__HIP_PLATFORM_AMD__=1 -D__HIP_ROCclr__=1 -DNDEBUG -DK_QUANTS_PER_ITERATION=2 -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -DUSE_PROF_API=1 -std=gnu++14 -x hip -mllvm=-amdgpu-early-inline-all=true -mllvm=-amdgpu-function-calls=false -Wno-expansion-to-defined -Wno-invalid-noreturn -Wno-ignored-attributes -Wno-pass-failed -Wno-deprecated-declarations -Wno-unused-result -I./llama/
GPU_RUNNER_ARCH_FLAGS=--offload-arch=gfx1102
GPU_RUNNER_CPU_FLAGS=

so, -mf16c needs to be removed from GPU_COMPILER_CUFLAGS for non avx builds, CUSTOM_CPU_FLAGS="".
This is strange that my Xeon CPU E5-2680 has avx, but no f16c.

edit 4:
-mfma needs to be removed too from make/Makefile.rocm.

<!-- gh-comment-id:2538742241 --> @agreppin commented on GitHub (Dec 12, 2024): Here is a full log of that problem, including strace: [ollama-strace-0.5.2-rc1-0-g6a6328a.log.gz](https://github.com/user-attachments/files/18111136/ollama-strace-0.5.2-rc1-0-g6a6328a.log.gz) The illegal instruction is after a call to ioctl: ``` ... 1652949 [0000741920524ded] ioctl(3, AMDKFD_IOC_ALLOC_MEMORY_OF_GPU, 0x7418a3df5f30) = 0 1652949 [0000741920524ded] ioctl(3, AMDKFD_IOC_MAP_MEMORY_TO_GPU, 0x7418a3df5f70) = 0 1652949 [000074191e4d65d6] --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x74191e4d65d6} --- ... ``` Seems to me that the amdgpu driver is the problem. (not sure, see edit 1) Here is the script used to produce the log file: ```sh #!/bin/sh set -eux LOG=ollama-strace.log exec >$LOG exec 2>&1 printf '# %s: ft=strace\n' vi PWD=~/src/ollama export LD_LIBRARY_PATH=$PWD/dist/linux-amd64/lib/ollama/runners/rocm:$PWD/dist/linux-amd64-rocm/lib/ollama ldd $PWD/dist/linux-amd64/lib/ollama/runners/rocm/ollama_llama_server env -i HOME=$HOME strace -f -i -v -s 16384 -o $LOG -A $PWD/dist/linux-amd64/bin/ollama serve 2>&1 ``` edit 1: librocblas.so.4.2.60204 contains a F16C (CPU feature) instruction, likely the cause of SIGILL: ``` c4 e2 79 13 c0 vcvtph2ps %xmm0,%xmm0 ``` found the issue for rocm-6.2.4, appears to be fixed in rocm-6.3.0: https://github.com/ROCm/rocBLAS/issues/1422#issuecomment-2089026056 edit 2: librocblas.so.4.2.60204 rebuilt without -mf16c, the issue seems fixed for my case ! but that question remains open: - ollama, libggml_rocm.so & rocm/ollama_llama_server have avx instructions, why ? one is in libggml_rocm.so / llama/ggml-cuda/ggml-cuda.cu / ggml_cuda_init() ``` c4 e3 75 18 c9 01 vinsertf128 $0x1,%xmm1,%ymm1,%ymm1 ``` edit 3: ```sh make -f make/Makefile.rocm HIP_ARCHS=gfx1102 CUSTOM_CPU_FLAGS="" RUNNER_TARGETS=rocm print-GPU_COMPILER_CFLAGS print-GPU_COMPILER_CXXFLAGS print-GPU_COMPILER_CUFLAGS print-GPU_RUNNER_ARCH_FLAGS print-GPU_RUNNER_CPU_FLAGS GPU_COMPILER_CFLAGS= -fPIC -D_GNU_SOURCE GPU_COMPILER_CXXFLAGS= -fPIC -D_GNU_SOURCE GPU_COMPILER_CUFLAGS=-fPIC -Wno-unused-function -std=gnu++17 -mf16c -mfma -c -O3 -DGGML_USE_CUDA -DGGML_BUILD=1 -DGGML_BACKEND_BUILD=1 -DGGML_SHARED=1 -DGGML_BACKEND_SHARED=1 -DGGML_CUDA_DMMV_X=32 -DGGML_CUDA_MMV_Y=1 -DGGML_SCHED_MAX_COPIES=4 -DGGML_USE_HIP -DGGML_USE_LLAMAFILE -DHIP_FAST_MATH -D__HIP_PLATFORM_AMD__=1 -D__HIP_ROCclr__=1 -DNDEBUG -DK_QUANTS_PER_ITERATION=2 -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -DUSE_PROF_API=1 -std=gnu++14 -x hip -mllvm=-amdgpu-early-inline-all=true -mllvm=-amdgpu-function-calls=false -Wno-expansion-to-defined -Wno-invalid-noreturn -Wno-ignored-attributes -Wno-pass-failed -Wno-deprecated-declarations -Wno-unused-result -I./llama/ GPU_RUNNER_ARCH_FLAGS=--offload-arch=gfx1102 GPU_RUNNER_CPU_FLAGS= ``` so, **-mf16c** needs to be removed from GPU_COMPILER_CUFLAGS for non avx builds, CUSTOM_CPU_FLAGS="". This is strange that my Xeon CPU E5-2680 has avx, but no [f16c](https://en.wikipedia.org/wiki/F16C). edit 4: **-mfma** needs to be removed too from make/Makefile.rocm.
Author
Owner

@agreppin commented on GitHub (Dec 15, 2024):

Successful non avx build result with the following mods:

  • removed -mf16c -mfma from make/Makefile.rocm
  • recompiled ROCm 6.2.4 with some mods (the hard part)
  • using CUSTOM_CPU_FLAGS="tune=generic" (go build tag ignored, Makefile.rocm => -mtune=generic)

The last traces of avx instructions are in:

bin/ollama:
<countbody>:
<indexbytebody>:
<math.archExp.abi0>:
<crypto/sha512.blockAVX2.abi0>:
<crypto/sha256.block.abi0>:
<crypto/sha1.blockAVX2.abi0>:
<vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Open.abi0>:
<vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Seal.abi0>:
<github.com/apache/arrow/go/arrow/memory._memset_avx2.abi0>:

runners/rocm/ollama_llama_server:
<countbody>:
<indexbytebody>:
<crypto/sha512.blockAVX2.abi0>:
<crypto/sha256.block.abi0>:
<crypto/sha1.blockAVX2.abi0>:
<vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Open.abi0>:
<vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Seal.abi0>:

... wich seems golang code paths for the CPU the executable will run on. So, the last question is answered.

Notes: the ROCm online doc says:

ROCm requires CPUs that support PCIe™ atomics. Modern CPUs after the release of 1st generation AMD Zen CPU and Intel™ Haswell support PCIe atomics.

gcc -march=znver1 & -march=haswell both have AVX2, F16C & FMA. You can verify with:

gcc -march=haswell -Q --help=target -xc /dev/null
<!-- gh-comment-id:2543953768 --> @agreppin commented on GitHub (Dec 15, 2024): Successful non avx build result with the following mods: - removed -mf16c -mfma from make/Makefile.rocm - recompiled ROCm 6.2.4 with some mods (the hard part) - using CUSTOM_CPU_FLAGS="tune=generic" (go build tag ignored, Makefile.rocm => -mtune=generic) The last traces of avx instructions are in: ``` bin/ollama: <countbody>: <indexbytebody>: <math.archExp.abi0>: <crypto/sha512.blockAVX2.abi0>: <crypto/sha256.block.abi0>: <crypto/sha1.blockAVX2.abi0>: <vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Open.abi0>: <vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Seal.abi0>: <github.com/apache/arrow/go/arrow/memory._memset_avx2.abi0>: runners/rocm/ollama_llama_server: <countbody>: <indexbytebody>: <crypto/sha512.blockAVX2.abi0>: <crypto/sha256.block.abi0>: <crypto/sha1.blockAVX2.abi0>: <vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Open.abi0>: <vendor/golang.org/x/crypto/chacha20poly1305.chacha20Poly1305Seal.abi0>: ``` ... wich seems golang code paths for the CPU the executable will run on. So, the last question is answered. Notes: the [ROCm online doc](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html#cpu-support) says: > ROCm requires CPUs that support PCIe™ atomics. Modern CPUs after the release of 1st generation AMD Zen CPU and Intel™ Haswell support PCIe atomics. gcc -march=znver1 & -march=haswell both have AVX2, F16C & FMA. You can verify with: ```sh gcc -march=haswell -Q --help=target -xc /dev/null ```
Author
Owner

@dhiltgen commented on GitHub (Apr 9, 2025):

We've revamped the build which now builds multiple CPU optimized libraries distinct from the GPU libraries.

https://github.com/ollama/ollama/blob/main/docs/development.md

<!-- gh-comment-id:2790758875 --> @dhiltgen commented on GitHub (Apr 9, 2025): We've revamped the build which now builds multiple CPU optimized libraries distinct from the GPU libraries. https://github.com/ollama/ollama/blob/main/docs/development.md
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/ollama#30912