gpt4 book ai didi

profiling - sycl::info::event_profiling 中的 command_submit 提交整个代码还是仅提交并行代码?

转载 作者:行者123 更新时间:2023-12-04 03:25:14 27 4
gpt4 key购买 nike

我尝试分析我的函数在设备上的执行时间。我读了这个链接: https://docs.oneapi.com/versions/latest/dpcpp/iface/event.html但是我没有在文档中找到任何关于 sycl::info::event_profiling 的信息,这让我明白了它们到底对应的是什么。我的意思是,command_start、command_end、command_submit。例如:这是我的代码,内核的一部分,

auto event = gpuQueue.submit([&](sycl::handler &h) {
//local copy of fun
auto f = fun;
sycl::accessor in_accessor(in_buffer, h, sycl::read_only);
sycl::accessor out_accessor(out_buffer, h, sycl::write_only);
h.parallel_for(n_item, [=](sycl::id<1> index) {
out_accessor[index] = f(in_accessor[index]);
});
});
event.wait();
auto end_overall = std::chrono::system_clock::now();
cl_ulong submit_time = event.template get_profiling_info<
cl::sycl::info::event_profiling::command_submit>();
cl_ulong start_time = event.template get_profiling_info<
cl::sycl::info::event_profiling::command_start>();
cl_ulong end_time = event.template get_profiling_info<
cl::sycl::info::event_profiling::command_end>();

我想了解 cl::sycl::info::event_profiling::command_submit,提交整个代码还是只提交并行?

最佳答案

SYCL 2020 specification上更清楚一点:

  • command_submit是命令组提交到SYCL运行时的时间戳。
  • command_start 是实际开始并行的时间戳
  • command_end是并行完成的时间戳

因此,您的内核在设备中的执行时间是command_start - command_end,而命令组的总处理时间(即潜在的副本、运行时开销等)是 command_submit - command_end

关于profiling - sycl::info::event_profiling 中的 command_submit 提交整个代码还是仅提交并行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67742015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com