MUDA
Loading...
Searching...
No Matches
event.h
1
#pragma once
2
#include <muda/tools/flag.h>
3
#include <cuda.h>
4
#include <cuda_runtime.h>
5
#include <cuda_runtime_api.h>
6
#include <device_launch_parameters.h>
7
#include <muda/check/check_cuda_errors.h>
8
9
namespace
muda
10
{
14
class
Event
15
{
16
cudaEvent_t m_handle =
nullptr
;
17
18
public
:
19
enum class
Bit
:
unsigned
int
20
{
21
eDefault
= cudaEventDefault,
22
eBlockingSync
= cudaEventBlockingSync,
23
eDisableTiming
= cudaEventDisableTiming,
24
eInterprocess
= cudaEventInterprocess
25
};
26
27
enum class
QueryResult
28
{
29
eFinished
= cudaSuccess,
30
eNotReady
= cudaErrorNotReady,
31
};
32
33
Event
(
Flags<Bit>
flag =
Bit::eDisableTiming
);
34
~Event
();
35
36
QueryResult
query()
const
;
37
// elapsed time (in ms) between two events
38
static
float
elapsed_time(cudaEvent_t start, cudaEvent_t stop);
39
40
operator
cudaEvent_t() {
return
m_handle; }
41
cudaEvent_t viewer()
const
{
return
m_handle; }
42
43
// delete copy constructor and assignment operator
44
Event(
const
Event&) =
delete
;
45
Event& operator=(
const
Event&) =
delete
;
46
47
// allow move constructor
48
Event(Event&& o) MUDA_NOEXCEPT;
49
// delete move assignment operator
50
Event& operator=(Event&& o) MUDA_NOEXCEPT;
51
};
52
}
// namespace muda
53
54
#include "details/event.inl"
muda::Event
RAII wrapper for cudaEvent.
Definition
event.h:15
muda::Event::QueryResult
QueryResult
Definition
event.h:28
muda::Event::QueryResult::eNotReady
@ eNotReady
muda::Event::QueryResult::eFinished
@ eFinished
muda::Event::Bit
Bit
Definition
event.h:20
muda::Event::Bit::eBlockingSync
@ eBlockingSync
muda::Event::Bit::eDisableTiming
@ eDisableTiming
muda::Event::Bit::eDefault
@ eDefault
muda::Event::Bit::eInterprocess
@ eInterprocess
muda::Flags
Definition
flag.h:9
src
muda
launch
event.h
Generated by
1.9.8