-
-
Save seanbaxter/3caa4926f341d4ef07ace32f47f94af5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ circle maxwell_gpu_s.cpp -sm_75 -stdpar -I ../../include -std=c++20 | |
ODR used by: int main(int, char**) | |
maxwell_gpu_s.cpp:43:36 | |
grid_t grid{N, is_gpu_scheduler(stream_ctx.get_scheduler())}; | |
^ | |
ODR used by: bool is_gpu_scheduler(nvexec::_strm::stream_scheduler&&) | |
maxwell/snr.cuh:321:35 | |
auto [on_gpu] = stdexec::sync_wait(std::move(snd)).value(); | |
^ | |
ODR used by: auto stdexec::__sync_wait::sync_wait_t::operator()(exec::__on::__continue_on<stdexec::__just::__sender<>, nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>::__t&&) const -> std::optional<std::tuple<bool>> | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:5980:14 | |
start(__op_state); | |
^ | |
ODR used by: void stdexec::__start::start_t::operator()(exec::__stl::__operation<stdexec::__just::__sender<>::__t, exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, stdexec::__sync_wait::__receiver<bool>>::__t&) const noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:1255:26 | |
(void) tag_invoke(start_t{}, __op); | |
^ | |
ODR used by: auto stdexec::__tag_invoke::tag_invoke_t::operator()(stdexec::__start::start_t, exec::__stl::__operation<stdexec::__just::__sender<>::__t, exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, stdexec::__sync_wait::__receiver<bool>>::__t&) const noexcept -> void | |
/home/sean/projects/stdexec-circle/include/stdexec/functional.hpp:108:26 | |
return tag_invoke((_Tag&&) __tag, (_Args&&) __args...); | |
^ | |
ODR used by: void exec::__stl::tag_invoke(stdexec::__start::start_t, exec::__stl::__operation<stdexec::__just::__sender<>::__t, exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, stdexec::__sync_wait::__receiver<bool>>::__t&) noexcept | |
/home/sean/projects/stdexec-circle/include/exec/__detail/__sender_facade.hpp:248:42 | |
__self.__state_.__kernel_.start( | |
^ | |
ODR used by: void exec::__default_kernel::start(stdexec::__schedule_from::__operation1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t&, stdexec::__ignore, stdexec::__ignore) noexcept | |
/home/sean/projects/stdexec-circle/include/exec/__detail/__sender_facade.hpp:386:21 | |
stdexec::start(__op); | |
^ | |
ODR used by: void stdexec::__start::start_t::operator()(stdexec::__schedule_from::__operation1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t&) const noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:1255:26 | |
(void) tag_invoke(start_t{}, __op); | |
^ | |
ODR used by: auto stdexec::__tag_invoke::tag_invoke_t::operator()(stdexec::__start::start_t, stdexec::__schedule_from::__operation1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t&) const noexcept -> void | |
/home/sean/projects/stdexec-circle/include/stdexec/functional.hpp:108:26 | |
return tag_invoke((_Tag&&) __tag, (_Args&&) __args...); | |
^ | |
ODR used by: void stdexec::__schedule_from::tag_invoke(stdexec::__start::start_t, stdexec::__schedule_from::__operation1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t&) noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:4722:16 | |
start(__op_state.__state1_); | |
^ | |
ODR used by: void stdexec::__start::start_t::operator()(nvexec::_strm::transfer::operation_state_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>, stdexec::_Yp<stdexec::__schedule_from::__receiver1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t>>::__t&) const noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:1255:26 | |
(void) tag_invoke(start_t{}, __op); | |
^ | |
ODR used by: auto stdexec::__tag_invoke::tag_invoke_t::operator()(stdexec::__start::start_t, nvexec::_strm::transfer::operation_state_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>, stdexec::_Yp<stdexec::__schedule_from::__receiver1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t>>::__t&) const noexcept -> void | |
/home/sean/projects/stdexec-circle/include/stdexec/functional.hpp:108:26 | |
return tag_invoke((_Tag&&) __tag, (_Args&&) __args...); | |
^ | |
ODR used by: void nvexec::_strm::transfer::tag_invoke(stdexec::__start::start_t, nvexec::_strm::transfer::operation_state_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>, stdexec::_Yp<stdexec::__schedule_from::__receiver1<stdexec::__loop::run_loop::__scheduler, nvexec::_strm::transfer_sender_t<nvexec::_strm::then_sender_t<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, lambda bool() const>>, exec::__stl::__receiver<exec::__on::__continue_on_kernel<nvexec::_strm::stream_scheduler, stdexec::__closure::__binder_back<stdexec::__then::then_t, lambda bool() const>>, exec::__default_kernel::__no_data, stdexec::__sync_wait::__receiver<bool>>>::__t>>::__t&) noexcept | |
/home/sean/projects/stdexec-circle/include/nvexec/stream/transfer.cuh:76:25 | |
stdexec::start(op.inner_op_); | |
^ | |
ODR used by: void stdexec::__start::start_t::operator()(nvexec::_strm::operation_state_<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, nvexec::_strm::then::receiver_t<1ul, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>, lambda bool() const>, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>>::__t&) const noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:1255:26 | |
(void) tag_invoke(start_t{}, __op); | |
^ | |
ODR used by: auto stdexec::__tag_invoke::tag_invoke_t::operator()(stdexec::__start::start_t, nvexec::_strm::operation_state_<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, nvexec::_strm::then::receiver_t<1ul, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>, lambda bool() const>, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>>::__t&) const noexcept -> void | |
/home/sean/projects/stdexec-circle/include/stdexec/functional.hpp:108:26 | |
return tag_invoke((_Tag&&) __tag, (_Args&&) __args...); | |
^ | |
ODR used by: void nvexec::_strm::tag_invoke(stdexec::__start::start_t, nvexec::_strm::operation_state_<nvexec::_strm::schedule_from_sender_t<nvexec::_strm::stream_scheduler, exec::__on::__with_sched<stdexec::__just::__sender<>, stdexec::__loop::run_loop::__scheduler>>, nvexec::_strm::then::receiver_t<1ul, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>, lambda bool() const>, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>>::__t&) noexcept | |
/home/sean/projects/stdexec-circle/include/nvexec/stream/common.cuh:487:43 | |
op.propagate_completion_signal(stdexec::set_error, std::move(op.status_)); | |
^ | |
ODR used by: void nvexec::_strm::operation_state_base_<nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>>::__t::propagate_completion_signal(stdexec::__receivers::set_error_t, cudaError&&) noexcept | |
/home/sean/projects/stdexec-circle/include/nvexec/stream/common.cuh:424:15 | |
<<<1, 1, 0, get_stream()>>>(receiver_, tag, (As&&) as...); | |
^ | |
(sm_75) ODR used by: void nvexec::_strm::continuation_kernel(nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>::__t, stdexec::__receivers::set_error_t, cudaError&&) | |
/home/sean/projects/stdexec-circle/include/nvexec/stream/common.cuh:310:10 | |
tag(::cuda::std::move(receiver), (As&&) as...); | |
^ | |
(sm_75) ODR used by: void stdexec::__receivers::set_error_t::operator()(nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>::__t&&, cudaError&&) const noexcept | |
/home/sean/projects/stdexec-circle/include/stdexec/execution.hpp:364:26 | |
(void) tag_invoke(set_error_t{}, (_Receiver&&) __rcvr, (_Error&&) __err); | |
^ | |
(sm_75) ODR used by: auto stdexec::__tag_invoke::tag_invoke_t::operator()(stdexec::__receivers::set_error_t, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>::__t&&, cudaError&&) const noexcept -> void | |
/home/sean/projects/stdexec-circle/include/stdexec/functional.hpp:108:26 | |
return tag_invoke((_Tag&&) __tag, (_Args&&) __args...); | |
^ | |
(sm_75) ODR used by: void nvexec::_strm::tag_invoke(stdexec::__receivers::set_error_t, nvexec::_strm::stream_enqueue_receiver<stdexec::_Xp<nvexec::_strm::stream_env<stdexec::_Xp<exec::__on::__with_sched_env<stdexec::__sync_wait::__env, stdexec::_Yp<nvexec::_strm::stream_scheduler>>>::_Up>>::_Up, stdexec::_Xp<nvexec::variant_t<cuda::std::tuple<stdexec::__receivers::set_stopped_t>, cuda::std::tuple<stdexec::__receivers::set_error_t, cudaError>, cuda::std::tuple<stdexec::__receivers::set_value_t, bool>, cuda::std::tuple<stdexec::__receivers::set_error_t, std::__exception_ptr::exception_ptr>>>::_Up>::__t&&, cudaError&&) noexcept | |
/home/sean/projects/stdexec-circle/include/nvexec/stream/common.cuh:281:25 | |
self.producer_(self.task_); | |
^ | |
error: /home/sean/projects/stdexec-circle/include/nvexec/detail/queue.cuh:106:7 | |
... included from /home/sean/projects/stdexec-circle/include/nvexec/stream/common.cuh:30:10 | |
... included from /home/sean/projects/stdexec-circle/include/nvexec/stream/sync_wait.cuh:21:10 | |
... included from /home/sean/projects/stdexec-circle/include/nvexec/stream_context.cuh:23:10 | |
... included from maxwell/snr.cuh:25:10 | |
... included from maxwell_gpu_s.cpp:17:10 | |
cg: function void nvexec::_strm::queue::producer_t::operator()(nvexec::_strm::queue::task_base_t*) marked __host__ cannot be executed on the GPU | |
function declared at /home/sean/projects/stdexec-circle/include/nvexec/detail/queue.cuh:106:7 | |
operator()(task_base_t* task) { | |
^ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment