Skip to content

Commit 46f3af0

Browse files
committed
[ET-VK] Print op breakdown with tab separator
Use boolean flag to switch between nicely-formatted space separator and spreadsheet-ready tab operator. Motiviation is similar to #7035 in facilitating copy-paste of results to a gsheet. Differential Revision: [D68345444](https://our.internmc.facebook.com/intern/diff/D68345444/) [ghstack-poisoned]
1 parent b7b7611 commit 46f3af0

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

backends/vulkan/runtime/vk_api/QueryPool.cpp

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,45 @@ std::string QueryPool::generate_string_report() {
233233
return ss.str();
234234
}
235235

236-
void QueryPool::print_results() {
236+
237+
std::string QueryPool::generate_tabbed_string_report() {
238+
std::lock_guard<std::mutex> lock(mutex_);
239+
240+
std::stringstream ss;
241+
242+
ss << "Kernel Name\t";
243+
ss << "Global Workgroup Size\t";
244+
ss << "Local Workgroup Size\t";
245+
ss << "Duration (ns)\t";
246+
ss << std::endl;
247+
248+
ss << "===========\t";
249+
ss << "=====================\t";
250+
ss << "====================\t";
251+
ss << "=============\t";
252+
ss << std::endl;
253+
254+
for (ShaderDuration& entry : shader_durations_) {
255+
std::chrono::duration<size_t, std::nano> exec_duration_ns(
256+
entry.execution_duration_ns);
257+
258+
ss << entry.kernel_name << "\t";
259+
ss << stringize(entry.global_workgroup_size) << "\t";
260+
ss << stringize(entry.local_workgroup_size) << "\t";
261+
ss << exec_duration_ns.count() << "\t";
262+
ss << std::endl;
263+
}
264+
265+
return ss.str();
266+
}
267+
268+
void QueryPool::print_results(const bool tabbed) {
237269
EARLY_RETURN_IF_UNINITIALIZED();
238-
std::cout << generate_string_report() << std::endl;
270+
if (tabbed) {
271+
std::cout << generate_tabbed_string_report() << std::endl;
272+
} else {
273+
std::cout << generate_string_report() << std::endl;
274+
}
239275
}
240276

241277
unsigned long QueryPool::get_total_shader_ns(std::string kernel_name) {

backends/vulkan/runtime/vk_api/QueryPool.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,16 @@ class QueryPool final {
9999

100100
std::vector<std::tuple<std::string, uint32_t, uint64_t, uint64_t>>
101101
get_shader_timestamp_data();
102-
std::string generate_string_report();
103-
void print_results();
102+
void print_results(const bool tabbed = false);
104103
unsigned long get_total_shader_ns(std::string kernel_name);
105104
unsigned long get_mean_shader_ns(std::string kernel_name);
106105

107106
operator bool() const {
108107
return querypool_ != VK_NULL_HANDLE;
109108
}
109+
private:
110+
std::string generate_string_report();
111+
std::string generate_tabbed_string_report();
110112
};
111113

112114
} // namespace vkapi

0 commit comments

Comments
 (0)