-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
As requested for the pika project, the ablity to pass APEX timers through to NVTX. This is not compatible with APEX cuda support, since it implements the NVTX API. However, it should work with an applicaiton linked with APEX if the APEX_ENABLE_NVTX_HANDOFF environment variable is set.
- Loading branch information
Showing
8 changed files
with
198 additions
and
1 deletion.
There are no files selected for viewing
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
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
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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
/* | ||
* Copyright (c) 2014-2021 Kevin Huck | ||
* Copyright (c) 2014-2021 University of Oregon | ||
* | ||
* Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
*/ | ||
|
||
#include "nvtx_listener.hpp" | ||
#include "apex_dynamic.hpp" | ||
|
||
using namespace std; | ||
|
||
namespace apex { | ||
|
||
nvtx_listener::nvtx_listener (void) : _terminate(false) { | ||
} | ||
|
||
void nvtx_listener::on_startup(startup_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_dump(dump_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_shutdown(shutdown_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_new_node(node_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_new_thread(new_thread_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_exit_thread(event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
inline bool nvtx_listener::_common_start(std::shared_ptr<task_wrapper> &tt_ptr) { | ||
if (!_terminate) { | ||
dynamic::nvtx::push(tt_ptr->get_task_id()->get_name().c_str()); | ||
} | ||
return true; | ||
} | ||
|
||
bool nvtx_listener::on_start(std::shared_ptr<task_wrapper> &tt_ptr) { | ||
return _common_start(tt_ptr); | ||
} | ||
|
||
bool nvtx_listener::on_resume(std::shared_ptr<task_wrapper> &tt_ptr) { | ||
return _common_start(tt_ptr); | ||
} | ||
|
||
inline void nvtx_listener::_common_stop(std::shared_ptr<profiler> &p) { | ||
APEX_UNUSED(p); | ||
if (!_terminate) { | ||
dynamic::nvtx::pop(); | ||
} | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_stop(std::shared_ptr<profiler> &p) { | ||
return _common_stop(p); | ||
} | ||
|
||
void nvtx_listener::on_yield(std::shared_ptr<profiler> &p) { | ||
return _common_stop(p); | ||
} | ||
|
||
void nvtx_listener::on_sample_value(sample_value_event_data &data) { | ||
APEX_UNUSED(data); | ||
if (!_terminate) { | ||
} | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_periodic(periodic_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::on_custom_event(custom_event_data &data) { | ||
APEX_UNUSED(data); | ||
return; | ||
} | ||
|
||
void nvtx_listener::set_node_id(int node_id, int node_count) { | ||
APEX_UNUSED(node_id); | ||
APEX_UNUSED(node_count); | ||
} | ||
|
||
void nvtx_listener::set_metadata(const char * name, const char * value) { | ||
APEX_UNUSED(name); | ||
APEX_UNUSED(value); | ||
} | ||
} | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/* | ||
* Copyright (c) 2014-2021 Kevin Huck | ||
* Copyright (c) 2014-2021 University of Oregon | ||
* | ||
* Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include "event_listener.hpp" | ||
#include <memory> | ||
|
||
namespace apex { | ||
|
||
class nvtx_listener : public event_listener { | ||
private: | ||
void _init(void); | ||
bool _terminate; | ||
bool _common_start(std::shared_ptr<task_wrapper> &tt_ptr); | ||
void _common_stop(std::shared_ptr<profiler> &p); | ||
static bool _initialized; | ||
public: | ||
nvtx_listener (void); | ||
~nvtx_listener (void) { }; | ||
static bool initialize_nvtx(int argc, char** avgv); | ||
inline static bool initialized(void) { return _initialized; } | ||
void on_startup(startup_event_data &data); | ||
void on_dump(dump_event_data &data); | ||
void on_reset(task_identifier * id) | ||
{ APEX_UNUSED(id); }; | ||
void on_pre_shutdown(void) {}; | ||
void on_shutdown(shutdown_event_data &data); | ||
void on_new_node(node_event_data &data); | ||
void on_new_thread(new_thread_event_data &data); | ||
void on_exit_thread(event_data &data); | ||
bool on_start(std::shared_ptr<task_wrapper> &tt_ptr); | ||
void on_stop(std::shared_ptr<profiler> &p); | ||
void on_yield(std::shared_ptr<profiler> &p); | ||
bool on_resume(std::shared_ptr<task_wrapper> &tt_ptr); | ||
void on_task_complete(std::shared_ptr<task_wrapper> &tt_ptr) { | ||
APEX_UNUSED(tt_ptr); | ||
}; | ||
void on_sample_value(sample_value_event_data &data); | ||
void on_periodic(periodic_event_data &data); | ||
void on_custom_event(custom_event_data &data); | ||
void on_send(message_event_data &data) { APEX_UNUSED(data); }; | ||
void on_recv(message_event_data &data) { APEX_UNUSED(data); }; | ||
void set_node_id(int node_id, int node_count); | ||
void set_metadata(const char * name, const char * value); | ||
}; | ||
|
||
} | ||
|