-
Notifications
You must be signed in to change notification settings - Fork 235
Add GGML_VK_VISIBLE_DEVICES env var #1547
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's GuideIntroduces the GGML_VK_VISIBLE_DEVICES environment variable to enable manual Vulkan device selection, updates documentation, and integrates the new variable into runtime detection and configuration. Class diagram for updated BaseConfig environment variable mappingclassDiagram
class BaseConfig {
+dict env_var_to_image
}
BaseConfig : env_var_to_image["GGML_VK_VISIBLE_DEVICES"] = "quay.io/ramalama/ramalama"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @ericcurtin, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request enhances the system's flexibility by introducing a dedicated environment variable, GGML_VK_VISIBLE_DEVICES
, for explicit Vulkan device selection. This change provides users with more granular control over GPU utilization, and it includes the necessary updates to both documentation and internal configuration to fully support this new functionality.
Highlights
- New Environment Variable: Introduced
GGML_VK_VISIBLE_DEVICES
as a new environment variable, allowing users to manually select a specific Vulkan device for acceleration. - Documentation Update: Updated the
README.md
file to reflect the newGGML_VK_VISIBLE_DEVICES
environment variable in the 'Accelerated images' table, clarifying its use for Vulkan acceleration. - System Integration: Integrated the new environment variable into the system's configuration (
ramalama/common.py
andramalama/config.py
) to ensure it is recognized and correctly maps to thequay.io/ramalama/ramalama
container image, which provides Vulkan support.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces the GGML_VK_VISIBLE_DEVICES
environment variable for manual Vulkan device selection, updates related configurations, and updates the README. The changes look good overall, with minor suggestions for improved clarity and maintainability.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @ericcurtin - I've reviewed your changes - here's some feedback:
- The detection order in
set_gpu_type_env_vars
places GGML_VK_VISIBLE_DEVICES after CUDA, but your README table lists it first—please reconcile the priority order between code and documentation. - Consider adding a quick usage example in the README showing how to set GGML_VK_VISIBLE_DEVICES to explicitly select a Vulkan device.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The detection order in `set_gpu_type_env_vars` places GGML_VK_VISIBLE_DEVICES after CUDA, but your README table lists it first—please reconcile the priority order between code and documentation.
- Consider adding a quick usage example in the README showing how to set GGML_VK_VISIBLE_DEVICES to explicitly select a Vulkan device.
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
49ada23
to
d4860ed
Compare
| MUSA_VISIBLE_DEVICES | quay.io/ramalama/musa | | ||
| Accelerator | Image | | ||
| :---------------------------------| :------------------------- | | ||
| GGML_VK_VISIBLE_DEVICES (or CPU) | quay.io/ramalama/ramalama | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be simpler to just name this VULKAN_VISIBLE_DEVICES?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It wouldn't because these env var names are all from llama.cpp
Can be used to manually select vulkan device Signed-off-by: Eric Curtin <[email protected]>
d4860ed
to
5fe848e
Compare
LGTM |
Can be used to manually select vulkan device
Summary by Sourcery
Add support for the GGML_VK_VISIBLE_DEVICES environment variable to enable manual Vulkan device selection and update related configuration and documentation.
New Features:
Enhancements:
Documentation: