Marker API (GPU)
Note: This is a maturing feature. Only NVIDIA GPUs are supported.
Index
LIKWID.GPUMarker.close
LIKWID.GPUMarker.getregion
LIKWID.GPUMarker.gpumarker
LIKWID.GPUMarker.init
LIKWID.GPUMarker.isactive
LIKWID.GPUMarker.nextgroup
LIKWID.GPUMarker.registerregion
LIKWID.GPUMarker.resetregion
LIKWID.GPUMarker.startregion
LIKWID.GPUMarker.stopregion
LIKWID.GPUMarker.@gpumarker
API
LIKWID.GPUMarker.close
— MethodClose the connection to the LIKWID GPU Marker API and write out measurement data to file. This file will be evaluated by likwid-perfctr
.
LIKWID.GPUMarker.getregion
— Methodgetregion(regiontag::AbstractString) -> nevents, events, time, count
Get the intermediate results of the region identified by regiontag
. On success, it returns * nevents
: the number of events in the current group, * events
: a list with all the aggregated event results, * time
: the measurement time for the region and * count
: the number of calls.
LIKWID.GPUMarker.gpumarker
— Methodgpumarker(f, regiontag::AbstractString)
Adds a LIKWID GPU marker region around the execution of the given function f
using GPUMarker.startregion
, GPUMarker.stopregion
under the hood. Note that LIKWID.GPUMarker.init()
and LIKWID.GPUMarker.close()
must be called before and after, respectively.
Examples
julia> using LIKWID, CUDA
julia> GPUMarker.init()
julia> gpumarker("sleeping...") do
sleep(1)
end
true
julia> gpumarker(()->CUDA.rand(100), "create rand vec")
true
julia> GPUMarker.close()
LIKWID.GPUMarker.init
— MethodInitialize the NvMon Marker API of the LIKWID library. Must be called previous to all other functions.
LIKWID.GPUMarker.isactive
— MethodChecks whether the NVIDIA GPU Marker API is active, i.e. julia has been started under likwid-perfctr -G ... -W ... -m
.
LIKWID.GPUMarker.nextgroup
— MethodSwitch to the next event set in a round-robin fashion. If you have set only one event set on the command line, this function performs no operation.
LIKWID.GPUMarker.registerregion
— MethodRegister a region with name regiontag
to the GPU Marker API. On success, true
is returned.
This is an optional function to reduce the overhead of region registration at Marker.startregion
. If you don't call registerregion
, the registration is done at startregion
.
LIKWID.GPUMarker.resetregion
— MethodReset the values stored using the region name regiontag
. On success, true
is returned.
LIKWID.GPUMarker.startregion
— MethodStart measurements under the name regiontag
. On success, true
is returned.
LIKWID.GPUMarker.stopregion
— MethodStop measurements under the name regiontag
. On success, true
is returned.
LIKWID.GPUMarker.@gpumarker
— MacroConvenience macro for flanking code with GPUMarker.startregion
and GPUMarker.stopregion
.
Examples
julia> using LIKWID, CUDA
julia> GPUMarker.init()
julia> @gpumarker "sleeping..." sleep(1)
true
julia> @gpumarker "create rand vec" CUDA.rand(100)
true
julia> GPUMarker.close()