Conversation
We have two structures for GPU properties: OPENCL_DEVICE_PROP and CUDA_DEVICE_PROP. Let's not confuse them. Change variables/fields called 'prop' to either 'opencl_prop' or 'cuda_prop'. COPROC_INTEL had fields 'name' and 'version'. The former was a duplicate of the OpenCL name, the latter wasn't used. Remove them.
they're detected only via OpenCL Make Docker cleanup commands non-verbose
There was a problem hiding this comment.
Pull request overview
This PR focuses on GPU-detection code clarity by disambiguating CUDA vs OpenCL property naming and removing unused Intel-specific detection paths, while adjusting a small Docker cleanup behavior.
Changes:
- Rename
COPROC_NVIDIA::proptocuda_propand update scheduler/client usage accordingly. - Remove unused Intel GPU detection fields/methods and rely on OpenCL-based Intel GPU info.
- Minor cleanup: clarify OpenCL device prop comments and reduce verbosity for Docker “list” commands.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| sched/sched_send.cpp | Use cuda_prop for NVIDIA GPU RAM reporting. |
| sched/sched_customize.cpp | Use cuda_prop for NVIDIA compute capability / SM count checks. |
| sched/plan_class_spec.cpp | Use cuda_prop for NVIDIA compute capability and RAM. |
| lib/opencl_boinc.h | Comment cleanup for OpenCL device name/vendor fields. |
| lib/coproc.h | Rename NVIDIA CUDA prop member to cuda_prop; remove unused Intel fields/stubs; clarify COPROC::type meaning. |
| lib/coproc.cpp | Update JSON summaries and NVIDIA XML/description/parse paths for cuda_prop; remove Intel name/version XML. |
| client/gpu_opencl.cpp | Rename local OpenCL device variable to opencl_prop; remove unused test logic; update CUDA/OpenCL correlation assignments. |
| client/gpu_nvidia.cpp | Update NVIDIA detection/compare logic to use cuda_prop. |
| client/gpu_detect.cpp | Remove Intel get()/correlate() calls; rely on OpenCL detection/correlation. |
| client/cs_apps.cpp | Make Docker “ps/images” listing non-verbose while keeping removal commands verbose. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| intel_gpu_opencls.push_back(opencl_prop); | ||
| intel_gpus.push_back(c); | ||
| #ifdef __APPLE__ | ||
| } else if (is_apple(prop.vendor)) { |
There was a problem hiding this comment.
In the Apple OpenCL branch, this still references prop.vendor, but the local variable was renamed to opencl_prop. This will fail to compile on APPLE. Update this condition to use the renamed variable (or avoid referencing an out-of-scope identifier).
| } else if (is_apple(prop.vendor)) { | |
| } else if (is_apple(opencl_prop.vendor)) { |
| #if !defined(_M_ARM) && !defined(_M_ARM64) | ||
| nvidia.correlate(use_all, ignore_gpu_instance[PROC_TYPE_NVIDIA_GPU]); | ||
| #endif | ||
| ati.correlate(use_all, ignore_gpu_instance[PROC_TYPE_AMD_GPU]); | ||
| intel_gpu.correlate(use_all, ignore_gpu_instance[PROC_TYPE_INTEL_GPU]); | ||
| #ifdef __APPLE__ |
There was a problem hiding this comment.
This function still contains nvidia_gpus[i].prop.* references under #ifdef __APPLE__ later in the same function (e.g., the CUDA-driver >= 6.5 alert). Since COPROC_NVIDIA::prop was renamed to cuda_prop, those remaining uses will break Apple builds; update them to the new member name.
Also remove kludge workaround for problem that no longer exists
|
@davidpanderson, there is still a build issue on MacOS: |
|
Done (I think)
…On Tue, Apr 28, 2026 at 6:23 PM Vitalii Koshura ***@***.***> wrote:
*AenBleidd* left a comment (BOINC/boinc#7046)
<#7046 (comment)>
@davidpanderson <https://github.com/davidpanderson>, there is still a
build issue on MacOS:
/Users/runner/work/boinc/boinc/client/gpu_opencl.cpp:694:33: error: use of undeclared identifier 'prop'
694 | } else if (is_apple(prop.vendor)) {
| ^
1 error generated.
—
Reply to this email directly, view it on GitHub
<#7046 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHQVAKX7Q6WQC74A4S64U34YFKSJAVCNFSM6AAAAACYKCIZVKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DGNBQGIZDGOJUGU>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (NVIDIA_GPU_Index1 >= (int)nvidia_gpus.size()) return false; | ||
| // Should never happen | ||
| if (NVIDIA_GPU_Index2 >= (int)nvidia_gpus.size()) return false; | ||
| // Should never happen |
There was a problem hiding this comment.
The indentation here is misleading (the comments appear visually associated with an if body that doesn’t exist) and can trigger compiler warnings like -Wmisleading-indentation. Prefer either moving the comment onto the same line, unindenting it, or adding braces around the if blocks so the structure is unambiguous.
| if (NVIDIA_GPU_Index1 >= (int)nvidia_gpus.size()) return false; | |
| // Should never happen | |
| if (NVIDIA_GPU_Index2 >= (int)nvidia_gpus.size()) return false; | |
| // Should never happen | |
| if (NVIDIA_GPU_Index1 >= (int)nvidia_gpus.size()) { | |
| // Should never happen | |
| return false; | |
| } | |
| if (NVIDIA_GPU_Index2 >= (int)nvidia_gpus.size()) { | |
| // Should never happen | |
| return false; | |
| } |
| opencl_device_index++; // Another OpenCL device from same vendor | ||
| if (!strcmp(other_opencls[coproc_index].vendor, opencl_prop.vendor)) { | ||
| opencl_device_index++; | ||
| // Another OpenCL device from same vendor |
There was a problem hiding this comment.
The over-indented comment on line 727 makes the block harder to read and looks like it belongs to a different nesting level. Align the comment with opencl_device_index++; (or attach it to that line) to avoid confusion during future edits.
| // Another OpenCL device from same vendor | |
| // Another OpenCL device from same vendor |
| char name[256]; // model name | ||
| // e.g. Intel(R) UHD Graphics 630 | ||
| char vendor[256]; // vendor | ||
| // e.g. Intel(R) Corporation |
There was a problem hiding this comment.
The example lines are indented more than the surrounding struct members, which makes the documentation look like it’s nested code and reduces readability. Consider aligning these example comments with the member declarations (or folding them into the end-of-line comment) for consistent formatting.
Don't confuse CUDA_DEVICE_PROP and OPENCL_DEVICE_PROP by having variables called 'prop'.
Remove unused code for Intel GPU detection.
Summary by cubic
Separate CUDA and OpenCL device properties, remove native Intel GPU detection, make Docker cleanup non-verbose, and drop an obsolete macOS VRAM workaround. This clarifies GPU detection, fixes macOS builds, and cleans up logs and XML/JSON output.
proptocuda_prop/opencl_propacrossclient,lib, andsched; updated comparisons, peak FLOPS, and JSON/XML parsing and writing.get()/correlate()and unused fields; Intel GPUs now detected via OpenCL only; JSON/XML now use OpenCL name and driver version; removed Intelname/versionfields from XML.ps --all,images) to non-verbose output.Written for commit 5694c59. Summary will update on new commits. Review in cubic