-
Notifications
You must be signed in to change notification settings - Fork 62
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
Use GCC 13 in CUDA 12 conda builds. #811
Use GCC 13 in CUDA 12 conda builds. #811
Conversation
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
11830a2
to
f3709cf
Compare
redundant move in return statement [-Werror=redundant-move]
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.
Approving the packaging changes, assuming the fix for this build issue will be small and/or reviewed by C++ codeowners:
[ 44%] Building CXX object _deps/deps-googlebenchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o
In file included from /opt/conda/conda-bld/work/benchmarks/primitives.cpp:23:
In function 'void benchmark::DoNotOptimize(Tp&) [with Tp = char*]',
inlined from 'void string_strcpy(benchmark::State&)' at /opt/conda/conda-bld/work/benchmarks/primitives.cpp:110:33:
/opt/conda/conda-bld/work/build-release/_deps/deps-googlebenchmark-src/src/../include/benchmark/benchmark.h:322:3: error: pointer used after 'void free(void*)' [-Werror=use-after-free]
322 | asm volatile("" : "+m,r"(value) : : "memory");
| ^~~
This looks like a bug in the Google Benchmark library: google/benchmark#1675 We may need to disable the relevant benchmarks in cuCIM until upstream can resolve |
^ @gigony would you be able to help with this? |
Thanks @bdice and @jakirkham for this PR. Please refer to #812, which is a prerequisite for merging this PR. |
The pointer variable is used after releasing memory with `free()`, which is a bug that needs to be addressed. Without this fix, the benchmark code may fail to build or run correctly, resulting in the following error ([link](https://github.com/rapidsai/cucim/actions/runs/12753155354/job/35544254443?pr=811)) ``` In function 'void benchmark::DoNotOptimize(Tp&) [with Tp = char*]', inlined from 'void string_strcpy(benchmark::State&)' at /opt/conda/conda-bld/work/benchmarks/primitives.cpp:110:33: /opt/conda/conda-bld/work/build-release/_deps/deps-googlebenchmark-src/src/../include/benchmark/benchmark.h:322:3: error: pointer used after 'void free(void*)' [-Werror=use-after-free] 322 | asm volatile("" : "+m,r"(value) : : "memory"); | ^~~ ``` It seems that the updated version of GCC is now capable of detecting this potential issue. This commit resolves the issue by ensuring the memory is released only after `benchmark::DoNotOptimize()` is called. This PR handles a build issue related to #811 - #811 Authors: - Gigon Bae (https://github.com/gigony) Approvers: - Bradley Dice (https://github.com/bdice) - https://github.com/jakirkham URL: #812
Thanks Gigon! 🙏 Bradley and I both reviewed and approved that PR. Since it passed, have also merged it Updated this PR to pull in those changes. Let's see how it goes |
A couple CI jobs are failing during package install in tests Likely we need to consolidate these installs as has been done for a few other RAPIDS repos: rapidsai/build-planning#22 Will work on putting something together |
Looks like this is now passing 🥳 |
CI is now passing with a rerun. I'll mark this repo as ready in the tracking issue. |
Already done :) |
/merge |
Description
conda-forge is using GCC 13 for CUDA 12 builds. This PR updates CUDA 12 conda builds to use GCC 13, for alignment.
These PRs should be merged in a specific order, see rapidsai/build-planning#129 for details.