]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
vulkan: Set limit for task concurrency (#5427)
authorNeuman Vong <redacted>
Fri, 9 Feb 2024 18:30:19 +0000 (05:30 +1100)
committerGitHub <redacted>
Fri, 9 Feb 2024 18:30:19 +0000 (19:30 +0100)
commit4b7b38bef5addbd31f453871d79647fbae6bec8a
tree030bb90369b868f59a7ccfcd28f4c6f46ecedd61
parente00d2a62dd1441e3b089570ec06d05c18800d368
vulkan: Set limit for task concurrency (#5427)

A common default for the maximum number of open files is 256, which can
lead to `asyncio.gather(*tasks)` failing with Too many open files.

    $ python ggml_vk_generate_shaders.py --glslc=$ANDROID_NDK_PATH/shader-tools/darwin-x86_64/glslc
    ggml_vulkan: Generating and compiling shaders to SPIR-V
    Traceback (most recent call last):
      File "/Users/neuman/Code.noindex/github/llama.cpp/ggml_vk_generate_shaders.py", line 2326, in <module>
        asyncio.run(main())
      File "/Users/neuman/Code.noindex/miniforge3/lib/python3.10/asyncio/runners.py", line 44, in run
        return loop.run_until_complete(main)
      File "/Users/neuman/Code.noindex/miniforge3/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
        return future.result()
      File "/Users/neuman/Code.noindex/github/llama.cpp/ggml_vk_generate_shaders.py", line 2294, in main
        await asyncio.gather(*tasks)
    [...snip...]
    OSError: [Errno 24] Too many open files

This change sets a reasonable concurrency limit for tasks (and therefore
open files), without significant impact on run time.
ggml_vk_generate_shaders.py