Skip to content

Multithreaded CI builds - #3311

Merged
ggerganov merged 12 commits into
ggml-org:masterfrom
netrunnereve:ci_threads
Sep 28, 2023
Merged

ggerganov merged 12 commits into
ggml-org:masterfrom
netrunnereve:ci_threads

Conversation

@netrunnereve

Copy link
Copy Markdown
Contributor

The CUDA install is still super slow, but if you have the threads you might as well use them! This halves build time for some targets.

@cebtenzzre

Copy link
Copy Markdown
Collaborator

Is there any reason we shouldn't use -j $(nproc) on Linux and -j $(sysctl -n hw.logicalcpu) on macOS?

@staviq

staviq commented Sep 23, 2023

Copy link
Copy Markdown
Contributor

Is there any reason we shouldn't use -j $(nproc) on Linux and -j $(sysctl -n hw.logicalcpu) on macOS?

I second this, since adding self hosted runners on forks for testing PRs is trivial, detecting local CPU count can be very useful.

While we're at it,

GitHub appears to automatically prioritize self hosted runners, and the only thing you need to do is to give them the same tag windows-latest etc. Docker isn't needed, self hosted runners work just fine on persistent image ( normal computer with normal OS ), and that makes subsequent jobs even faster too.

As soon as you register a self hosted runner in your forked repo, CI jobs will run on it automatically.

@netrunnereve

Copy link
Copy Markdown
Contributor Author

Is there any reason we shouldn't use -j $(nproc) on Linux and -j $(sysctl -n hw.logicalcpu) on macOS?

Done, and added for Windows too. That's a much better way of doing it.

Comment thread .github/workflows/build.yml Outdated
sudo pkg update
sudo pkg install -y gmake automake autoconf pkgconf llvm15 clinfo clover opencl clblast openblas
gmake CC=/usr/local/bin/clang15 CXX=/usr/local/bin/clang++15
gmake CC=/usr/local/bin/clang15 CXX=/usr/local/bin/clang++15 -j `sysctl -n hw.ncpu`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason you switched syntax for this one?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The FreeBSD shell doesn't support the $() syntax.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Should we switch all the others then?
This is probably the difference between sh and bash

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably the difference between sh and bash

Nope. Modern POSIX sh supports $(), you can try it out for yourself with the dash shell. FreeBSD defaults to tcsh which doesn't support $().

@ErikBjare ErikBjare left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@ggerganov
ggerganov merged commit 0512d66 into ggml-org:master Sep 28, 2023
@netrunnereve
netrunnereve deleted the ci_threads branch September 28, 2023 19:34
joelkuiper added a commit to vortext/llama.cpp that referenced this pull request Oct 2, 2023
…example

* 'master' of github.com:ggerganov/llama.cpp:
  ggml-cuda : perform cublas mat mul of quantized types as f16 (ggml-org#3412)
  llama.cpp : add documentation about rope_freq_base and scale values (ggml-org#3401)
  train : fix KQ_pos allocation (ggml-org#3392)
  llama : quantize up to 31% faster on Linux and Windows with mmap (ggml-org#3206)
  readme : update hot topics + model links (ggml-org#3399)
  readme : add link to grammars app (ggml-org#3388)
  swift : fix build on xcode 15 (ggml-org#3387)
  build : enable more non-default compiler warnings (ggml-org#3200)
  ggml_tensor: update the structure comments. (ggml-org#3283)
  ggml : release the requested thread pool resource (ggml-org#3292)
  llama.cpp : split llama_context_params into model and context params (ggml-org#3301)
  ci : multithreaded builds (ggml-org#3311)
  train : finetune LORA (ggml-org#2632)
  gguf : basic type checking in gguf_get_* (ggml-org#3346)
  gguf : make token scores and types optional (ggml-org#3347)
  ci : disable freeBSD builds due to lack of VMs (ggml-org#3381)
  llama : custom attention mask + parallel decoding + no context swaps (ggml-org#3228)
  docs : mark code as Bash (ggml-org#3375)
  readme : add Mistral AI release 0.1 (ggml-org#3362)
  ggml-cuda : perform cublas fp16 matrix multiplication as fp16 (ggml-org#3370)
yusiwen pushed a commit to yusiwen/llama.cpp that referenced this pull request Oct 7, 2023
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
Seunghhon pushed a commit to Seunghhon/llama.cpp that referenced this pull request Apr 26, 2026
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
phuongncn pushed a commit to phuongncn/llama.cpp-gx10-dgx-sparks-deepseekv4 that referenced this pull request Apr 28, 2026
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
ljubomirj pushed a commit to ljubomirj/llama.cpp that referenced this pull request May 6, 2026
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
AlexiAlp pushed a commit to minghaop/llama.cpp that referenced this pull request Jun 2, 2026
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
AlexiAlp pushed a commit to minghaop/llama.cpp that referenced this pull request Jun 2, 2026
* mac and linux threads

* windows

* Update build.yml

* Update build.yml

* Update build.yml

* automatically get thread count

* windows syntax

* try to fix freebsd

* Update build.yml

* Update build.yml

* Update build.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants