MUDA
Loading...
Searching...
No Matches
launch_info_cache.h
1#pragma once
2#include <muda/tools/host_device_string_cache.h>
3namespace muda::details
4{
6{
7 private:
8 HostDeviceStringCache m_view_name_string_cache;
9 HostDeviceStringCache m_kernel_name_string_cache;
10 HostDeviceStringCache m_kernel_file_string_cache;
11 HostDeviceStringCache m_capture_name_string_cache;
12
13 StringPointer m_current_kernel_name;
14 StringPointer m_current_capture_name;
15 StringPointer m_current_kernel_file;
16 int m_current_kernel_line;
17
18
19 LaunchInfoCache() MUDA_NOEXCEPT
20 {
21 m_current_kernel_name = m_kernel_name_string_cache[std::string_view{""}];
22 m_current_kernel_file = m_kernel_file_string_cache[std::string_view{""}];
23 m_current_capture_name = m_capture_name_string_cache[std::string_view{""}];
24 m_current_kernel_line = -1;
25 }
26
27 public:
28 static auto view_name(std::string_view name) MUDA_NOEXCEPT
29 {
30 return instance().m_view_name_string_cache[name];
31 }
32
33 static auto current_kernel_name(std::string_view name) MUDA_NOEXCEPT
34 {
35 auto& ins = instance();
36 ins.m_current_kernel_name = ins.m_kernel_name_string_cache[name];
37 return ins.m_current_kernel_name;
38 }
39
40 static auto current_kernel_name() MUDA_NOEXCEPT
41 {
42 return instance().m_current_kernel_name;
43 }
44
45 static auto current_capture_name(std::string_view name) MUDA_NOEXCEPT
46 {
47 auto& ins = instance();
48 ins.m_current_capture_name = ins.m_capture_name_string_cache[name];
49 return ins.m_current_capture_name;
50 }
51
52 static auto current_capture_name() MUDA_NOEXCEPT
53 {
54 return instance().m_current_capture_name;
55 }
56
57 static auto current_kernel_file(std::string_view name) MUDA_NOEXCEPT
58 {
59 auto& ins = instance();
60 ins.m_current_kernel_file = ins.m_kernel_file_string_cache[name];
61 return ins.m_current_kernel_file;
62 }
63
64 static auto current_kernel_file() MUDA_NOEXCEPT
65 {
66 return instance().m_current_kernel_file;
67 }
68
69 static auto current_kernel_line(int line) MUDA_NOEXCEPT
70 {
71 instance().m_current_kernel_line = line;
72 return line;
73 }
74
75 static auto current_kernel_line() MUDA_NOEXCEPT
76 {
77 return instance().m_current_kernel_line;
78 }
79
80 static LaunchInfoCache& instance() MUDA_NOEXCEPT
81 {
82 thread_local static LaunchInfoCache instance;
83 return instance;
84 }
85};
86} // namespace muda::details
Definition host_device_string_cache.h:15
Definition launch_info_cache.h:6
Definition string_pointer.h:7