From 5ae9aa14926e8e6fa6fb4e145160e11d06b21a2c Mon Sep 17 00:00:00 2001 From: rkebichi <54912798+rkebichi@users.noreply.github.com> Date: Tue, 22 Oct 2019 15:18:45 -0400 Subject: [PATCH] Update roctracer_kfd.h --- inc/roctracer_kfd.h | 606 +++++++++++++++++++++++--------------------- 1 file changed, 324 insertions(+), 282 deletions(-) diff --git a/inc/roctracer_kfd.h b/inc/roctracer_kfd.h index a06b75ff71..22cb46e2c9 100644 --- a/inc/roctracer_kfd.h +++ b/inc/roctracer_kfd.h @@ -1,3 +1,4 @@ +// automatically generated /* Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved. @@ -19,7 +20,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - +///////////////////////////////////////////////////////////////////////////// #ifndef INC_ROCTRACER_KFD_H_ #define INC_ROCTRACER_KFD_H_ #include @@ -78,50 +79,139 @@ struct output_streamer { inline static std::ostream& put(std::ostream& out, uint64_t* v) { out << std::hex << ""; return out; } }; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, hsa_queue_t* v) { out << ""; return out; } -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, hsa_queue_t** v) { out << ""; return out; } -}; // begin ostream ops for KFD template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaQueueReport& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.VMID); + roctracer::kfd_support::output_streamer::put(out,v.QueueSize); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_DEBUG_PROPERTIES& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Value); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaNodeChange& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Flags); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaDeviceStateChange& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.NodeId); + roctracer::kfd_support::output_streamer::put(out,v.Device); + roctracer::kfd_support::output_streamer::put(out,v.Flags); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_LINKPROPERTY& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.LinkProperty); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaDbgWaveMsgAMDGen2& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Value); + roctracer::kfd_support::output_streamer::put(out,v.Reserved2); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaMemoryRange& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.SizeInBytes); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCounterProperties& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.NumBlocks); + roctracer::kfd_support::output_streamer::put(out,v.NumConcurrent); + roctracer::kfd_support::output_streamer::put(out,v.Blocks); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_ENGINE_VERSION& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Value); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCComputeProperties& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.SiblingMap); + return out; +} +}; +template<> struct output_streamer { inline static std::ostream& put(std::ostream& out, HsaVersionInfo& v) { - roctracer::kfd_support::output_streamer::put(out,v.KernelInterfaceMajorVersion); - roctracer::kfd_support::output_streamer::put(out,v.KernelInterfaceMinorVersion); + roctracer::kfd_support::output_streamer::put(out,v.KernelInterfaceMajorVersion); + roctracer::kfd_support::output_streamer::put(out,v.KernelInterfaceMinorVersion); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaSystemProperties& v) { - roctracer::kfd_support::output_streamer::put(out,v.NumNodes); - roctracer::kfd_support::output_streamer::put(out,v.PlatformOem); - roctracer::kfd_support::output_streamer::put(out,v.PlatformId); - roctracer::kfd_support::output_streamer::put(out,v.PlatformRev); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HSA_CAPABILITY& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCacheType& v) { - roctracer::kfd_support::output_streamer::put(out,v.Value); - roctracer::kfd_support::output_streamer::put(out,v.ui32.HotPluggable); - roctracer::kfd_support::output_streamer::put(out,v.ui32.HSAMMUPresent); - roctracer::kfd_support::output_streamer::put(out,v.ui32.SharedWithGraphics); - roctracer::kfd_support::output_streamer::put(out,v.ui32.QueueSizePowerOfTwo); - roctracer::kfd_support::output_streamer::put(out,v.ui32.QueueSize32bit); - roctracer::kfd_support::output_streamer::put(out,v.ui32.QueueIdleEvent); - roctracer::kfd_support::output_streamer::put(out,v.ui32.VALimit); - roctracer::kfd_support::output_streamer::put(out,v.ui32.WatchPointsSupported); - roctracer::kfd_support::output_streamer::put(out,v.ui32.WatchPointsTotalBits); - roctracer::kfd_support::output_streamer::put(out,v.ui32.DoorbellType); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); + roctracer::kfd_support::output_streamer::put(out,v.Value); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_MEMORYPROPERTY& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.MemoryProperty); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaClockCounters& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.GPUClockCounter); + roctracer::kfd_support::output_streamer::put(out,v.CPUClockCounter); + roctracer::kfd_support::output_streamer::put(out,v.SystemClockCounter); + roctracer::kfd_support::output_streamer::put(out,v.SystemClockFrequencyHz); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCounter& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Type); + roctracer::kfd_support::output_streamer::put(out,v.CounterId); + roctracer::kfd_support::output_streamer::put(out,v.CounterSizeInBits); + roctracer::kfd_support::output_streamer::put(out,v.CounterMask); + roctracer::kfd_support::output_streamer::put(out,v.Flags); + roctracer::kfd_support::output_streamer::put(out,v.BlockIndex); return out; } }; @@ -154,8 +244,8 @@ struct output_streamer { roctracer::kfd_support::output_streamer::put(out,v.MaxEngineClockMhzFCompute); roctracer::kfd_support::output_streamer::put(out,v.MaxEngineClockMhzCCompute); roctracer::kfd_support::output_streamer::put(out,v.DrmRenderMinor); - roctracer::kfd_support::output_streamer::put(out,v.MarketingName); - roctracer::kfd_support::output_streamer::put(out,v.AMDName); + roctracer::kfd_support::output_streamer::put(out,v.MarketingName); + roctracer::kfd_support::output_streamer::put(out,v.AMDName); roctracer::kfd_support::output_streamer::put(out,v.uCodeEngineVersions); roctracer::kfd_support::output_streamer::put(out,v.DebugProperties); roctracer::kfd_support::output_streamer::put(out,v.HiveID); @@ -167,13 +257,13 @@ struct output_streamer { } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HSA_MEMORYPROPERTY& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaSystemProperties& v) { - roctracer::kfd_support::output_streamer::put(out,v.MemoryProperty); - roctracer::kfd_support::output_streamer::put(out,v.ui32.HotPluggable); - roctracer::kfd_support::output_streamer::put(out,v.ui32.NonVolatile); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); + roctracer::kfd_support::output_streamer::put(out,v.NumNodes); + roctracer::kfd_support::output_streamer::put(out,v.PlatformOem); + roctracer::kfd_support::output_streamer::put(out,v.PlatformId); + roctracer::kfd_support::output_streamer::put(out,v.PlatformRev); return out; } }; @@ -181,64 +271,44 @@ template<> struct output_streamer { inline static std::ostream& put(std::ostream& out, HsaMemoryProperties& v) { - roctracer::kfd_support::output_streamer::put(out,v.HeapType); - roctracer::kfd_support::output_streamer::put(out,v.SizeInBytes); - roctracer::kfd_support::output_streamer::put(out,v.ui32.SizeInBytesLow); - roctracer::kfd_support::output_streamer::put(out,v.ui32.SizeInBytesHigh); + roctracer::kfd_support::output_streamer::put(out,v.HeapType); roctracer::kfd_support::output_streamer::put(out,v.Flags); - roctracer::kfd_support::output_streamer::put(out,v.Width); - roctracer::kfd_support::output_streamer::put(out,v.MemoryClockMax); - roctracer::kfd_support::output_streamer::put(out,v.VirtualBaseAddress); + roctracer::kfd_support::output_streamer::put(out,v.Width); + roctracer::kfd_support::output_streamer::put(out,v.MemoryClockMax); + roctracer::kfd_support::output_streamer::put(out,v.VirtualBaseAddress); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCacheType& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_ENGINE_ID& v) { - roctracer::kfd_support::output_streamer::put(out,v.Value); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Data); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Instruction); - roctracer::kfd_support::output_streamer::put(out,v.ui32.CPU); - roctracer::kfd_support::output_streamer::put(out,v.ui32.HSACU); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); + roctracer::kfd_support::output_streamer::put(out,v.Value); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCacheProperties& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_CAPABILITY& v) { - roctracer::kfd_support::output_streamer::put(out,v.ProcessorIdLow); - roctracer::kfd_support::output_streamer::put(out,v.CacheLevel); - roctracer::kfd_support::output_streamer::put(out,v.CacheSize); - roctracer::kfd_support::output_streamer::put(out,v.CacheLineSize); - roctracer::kfd_support::output_streamer::put(out,v.CacheLinesPerTag); - roctracer::kfd_support::output_streamer::put(out,v.CacheAssociativity); - roctracer::kfd_support::output_streamer::put(out,v.CacheLatency); - roctracer::kfd_support::output_streamer::put(out,v.CacheType); - roctracer::kfd_support::output_streamer::put(out,v.SiblingMap); + roctracer::kfd_support::output_streamer::put(out,v.Value); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCComputeProperties& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaQueueInfo& v) { - roctracer::kfd_support::output_streamer::put(out,v.SiblingMap); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HSA_LINKPROPERTY& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.LinkProperty); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Override); - roctracer::kfd_support::output_streamer::put(out,v.ui32.NonCoherent); - roctracer::kfd_support::output_streamer::put(out,v.ui32.NoAtomics32bit); - roctracer::kfd_support::output_streamer::put(out,v.ui32.NoAtomics64bit); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); + roctracer::kfd_support::output_streamer::put(out,v.QueueDetailError); + roctracer::kfd_support::output_streamer::put(out,v.QueueTypeExtended); + roctracer::kfd_support::output_streamer::put(out,v.NumCUAssigned); + roctracer::kfd_support::output_streamer::put(out,v.CUMaskInfo); + roctracer::kfd_support::output_streamer::put(out,v.UserContextSaveArea); + roctracer::kfd_support::output_streamer::put(out,v.SaveAreaSizeInBytes); + roctracer::kfd_support::output_streamer::put(out,v.ControlStackTop); + roctracer::kfd_support::output_streamer::put(out,v.ControlStackUsedInBytes); + roctracer::kfd_support::output_streamer::put(out,v.SaveAreaHeader); + roctracer::kfd_support::output_streamer::put(out,v.Reserved2); return out; } }; @@ -246,74 +316,74 @@ template<> struct output_streamer { inline static std::ostream& put(std::ostream& out, HsaIoLinkProperties& v) { - roctracer::kfd_support::output_streamer::put(out,v.IoLinkType); - roctracer::kfd_support::output_streamer::put(out,v.VersionMajor); - roctracer::kfd_support::output_streamer::put(out,v.VersionMinor); - roctracer::kfd_support::output_streamer::put(out,v.NodeFrom); - roctracer::kfd_support::output_streamer::put(out,v.NodeTo); - roctracer::kfd_support::output_streamer::put(out,v.Weight); - roctracer::kfd_support::output_streamer::put(out,v.MinimumLatency); - roctracer::kfd_support::output_streamer::put(out,v.MaximumLatency); - roctracer::kfd_support::output_streamer::put(out,v.MinimumBandwidth); - roctracer::kfd_support::output_streamer::put(out,v.MaximumBandwidth); - roctracer::kfd_support::output_streamer::put(out,v.RecTransferSize); - roctracer::kfd_support::output_streamer::put(out,v.Flags); + roctracer::kfd_support::output_streamer::put(out,v.IoLinkType); + roctracer::kfd_support::output_streamer::put(out,v.VersionMajor); + roctracer::kfd_support::output_streamer::put(out,v.VersionMinor); + roctracer::kfd_support::output_streamer::put(out,v.NodeFrom); + roctracer::kfd_support::output_streamer::put(out,v.NodeTo); + roctracer::kfd_support::output_streamer::put(out,v.Weight); + roctracer::kfd_support::output_streamer::put(out,v.MinimumLatency); + roctracer::kfd_support::output_streamer::put(out,v.MaximumLatency); + roctracer::kfd_support::output_streamer::put(out,v.MinimumBandwidth); + roctracer::kfd_support::output_streamer::put(out,v.MaximumBandwidth); + roctracer::kfd_support::output_streamer::put(out,v.RecTransferSize); + roctracer::kfd_support::output_streamer::put(out,v.Flags); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaMemFlags& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaMemoryAccessFault& v) { - roctracer::kfd_support::output_streamer::put(out,v.ui32.NonPaged); - roctracer::kfd_support::output_streamer::put(out,v.ui32.CachePolicy); - roctracer::kfd_support::output_streamer::put(out,v.ui32.ReadOnly); - roctracer::kfd_support::output_streamer::put(out,v.ui32.PageSize); - roctracer::kfd_support::output_streamer::put(out,v.ui32.HostAccess); - roctracer::kfd_support::output_streamer::put(out,v.ui32.NoSubstitute); - roctracer::kfd_support::output_streamer::put(out,v.ui32.GDSMemory); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Scratch); - roctracer::kfd_support::output_streamer::put(out,v.ui32.AtomicAccessFull); - roctracer::kfd_support::output_streamer::put(out,v.ui32.AtomicAccessPartial); - roctracer::kfd_support::output_streamer::put(out,v.ui32.ExecuteAccess); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); - roctracer::kfd_support::output_streamer::put(out,v.Value); + roctracer::kfd_support::output_streamer::put(out,v.NodeId); + roctracer::kfd_support::output_streamer::put(out,v.VirtualAddress); + roctracer::kfd_support::output_streamer::put(out,v.Failure); + roctracer::kfd_support::output_streamer::put(out,v.Flags); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaQueueResource& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaEvent& v) { - roctracer::kfd_support::output_streamer::put(out,v.QueueId); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_DoorBell)); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_DoorBell_aql)); - roctracer::kfd_support::output_streamer::put(out,v.QueueDoorBell); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_write_ptr)); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_write_ptr_aql)); - roctracer::kfd_support::output_streamer::put(out,v.QueueWptrValue); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_read_ptr)); - roctracer::kfd_support::output_streamer::put(out,*(v.Queue_read_ptr_aql)); - roctracer::kfd_support::output_streamer::put(out,v.QueueRptrValue); + roctracer::kfd_support::output_streamer::put(out,v.EventId); + roctracer::kfd_support::output_streamer::put(out,v.EventData); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaQueueReport& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaMemMapFlags& v) { - roctracer::kfd_support::output_streamer::put(out,v.VMID); - out << ""; - roctracer::kfd_support::output_streamer::put(out,v.QueueSize); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaDbgWaveMsgAMDGen2& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaDbgWaveMessage& v) { - roctracer::kfd_support::output_streamer::put(out, v.Value); - roctracer::kfd_support::output_streamer::put(out, v.Reserved2); + roctracer::kfd_support::output_streamer::put(out,v.DbgWaveMsg); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaGraphicsResourceInfo& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.SizeInBytes); + roctracer::kfd_support::output_streamer::put(out,v.MetadataSizeInBytes); + roctracer::kfd_support::output_streamer::put(out,v.Reserved); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaEventData& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.EventType); + roctracer::kfd_support::output_streamer::put(out,v.HWData1); + roctracer::kfd_support::output_streamer::put(out,v.HWData2); + roctracer::kfd_support::output_streamer::put(out,v.HWData3); return out; } }; @@ -326,145 +396,18 @@ struct output_streamer { } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaDbgWaveMessage& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaPointerInfo& v) { - out << ""; - roctracer::kfd_support::output_streamer::put(out,v.DbgWaveMsg); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaSyncVar& v) -{ - out << ""; - roctracer::kfd_support::output_streamer::put(out,v.SyncVar.UserDataPtrValue); - roctracer::kfd_support::output_streamer::put(out,v.SyncVarSize); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaNodeChange& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.Flags); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaDeviceStateChange& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.NodeId); - roctracer::kfd_support::output_streamer::put(out,v.Device); - roctracer::kfd_support::output_streamer::put(out,v.Flags); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaAccessAttributeFailure& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.NotPresent); - roctracer::kfd_support::output_streamer::put(out,v.ReadOnly); - roctracer::kfd_support::output_streamer::put(out,v.NoExecute); - roctracer::kfd_support::output_streamer::put(out,v.GpuAccess); - roctracer::kfd_support::output_streamer::put(out,v.ECC); - roctracer::kfd_support::output_streamer::put(out,v.Reserved); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaMemoryAccessFault& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.NodeId); - roctracer::kfd_support::output_streamer::put(out,v.VirtualAddress); - roctracer::kfd_support::output_streamer::put(out,v. Failure); - roctracer::kfd_support::output_streamer::put(out,v.Flags); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaEventData& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.EventType); - roctracer::kfd_support::output_streamer::put(out,v.EventData.SyncVar); - roctracer::kfd_support::output_streamer::put(out,v.EventData.NodeChangeState); - roctracer::kfd_support::output_streamer::put(out,v.EventData.DeviceState); - roctracer::kfd_support::output_streamer::put(out,v.EventData.MemoryAccessFault); - roctracer::kfd_support::output_streamer::put(out,v.HWData1); - roctracer::kfd_support::output_streamer::put(out,v.HWData2); - roctracer::kfd_support::output_streamer::put(out,v.HWData3); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaEventDescriptor& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.EventType); - roctracer::kfd_support::output_streamer::put(out,v.NodeId); - roctracer::kfd_support::output_streamer::put(out,v.SyncVar); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaEvent& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.EventId); - roctracer::kfd_support::output_streamer::put(out,v.EventData); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaClockCounters& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.GPUClockCounter); - roctracer::kfd_support::output_streamer::put(out,v.CPUClockCounter); - roctracer::kfd_support::output_streamer::put(out,v.SystemClockCounter); - roctracer::kfd_support::output_streamer::put(out,v.SystemClockFrequencyHz); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HSA_UUID& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.Data1); - roctracer::kfd_support::output_streamer::put(out,v.Data2); - roctracer::kfd_support::output_streamer::put(out,v.Data3); - roctracer::kfd_support::output_streamer::put(out,v.Data4); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCounterFlags& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.ui32.Global); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Resettable); - roctracer::kfd_support::output_streamer::put(out,v.ui32.ReadOnly); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Stream); - roctracer::kfd_support::output_streamer::put(out,v.ui32.Reserved); - roctracer::kfd_support::output_streamer::put(out, v.Value); - return out; -} -}; -template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCounter& v) -{ - roctracer::kfd_support::output_streamer::put(out,v.Type); - roctracer::kfd_support::output_streamer::put(out,v.CounterId); - roctracer::kfd_support::output_streamer::put(out,v.CounterSizeInBits); - roctracer::kfd_support::output_streamer::put(out,v.CounterMask); - roctracer::kfd_support::output_streamer::put(out,v.Flags); - roctracer::kfd_support::output_streamer::put(out,v.BlockIndex); + roctracer::kfd_support::output_streamer::put(out,v.Type); + roctracer::kfd_support::output_streamer::put(out,v.Node); + roctracer::kfd_support::output_streamer::put(out,v.MemFlags); + roctracer::kfd_support::output_streamer::put(out,v.GPUAddress); + roctracer::kfd_support::output_streamer::put(out,v.SizeInBytes); + roctracer::kfd_support::output_streamer::put(out,v.NRegisteredNodes); + roctracer::kfd_support::output_streamer::put(out,v.NMappedNodes); + roctracer::kfd_support::output_streamer::put(out,v.RegisteredNodes); + roctracer::kfd_support::output_streamer::put(out,v.MappedNodes); return out; } }; @@ -473,19 +416,94 @@ struct output_streamer { inline static std::ostream& put(std::ostream& out, HsaCounterBlockProperties& v) { roctracer::kfd_support::output_streamer::put(out,v.BlockId); - roctracer::kfd_support::output_streamer::put(out,v.NumCounters); - roctracer::kfd_support::output_streamer::put(out,v.NumConcurrent); - roctracer::kfd_support::output_streamer::put(out,v.Counters[1]); + roctracer::kfd_support::output_streamer::put(out,v.NumCounters); + roctracer::kfd_support::output_streamer::put(out,v.NumConcurrent); + roctracer::kfd_support::output_streamer::put(out,v.Counters); return out; } }; template<> -struct output_streamer { - inline static std::ostream& put(std::ostream& out, HsaCounterProperties& v) +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaEventDescriptor& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.EventType); + roctracer::kfd_support::output_streamer::put(out,v.NodeId); + roctracer::kfd_support::output_streamer::put(out,v.SyncVar); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaAccessAttributeFailure& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.NotPresent); + roctracer::kfd_support::output_streamer::put(out,v.ReadOnly); + roctracer::kfd_support::output_streamer::put(out,v.NoExecute); + roctracer::kfd_support::output_streamer::put(out,v.GpuAccess); + roctracer::kfd_support::output_streamer::put(out,v.ECC); + roctracer::kfd_support::output_streamer::put(out,v.Imprecise); + roctracer::kfd_support::output_streamer::put(out,v.ErrorType); + roctracer::kfd_support::output_streamer::put(out,v.Reserved); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HSA_UUID& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.Data1); + roctracer::kfd_support::output_streamer::put(out,v.Data2); + roctracer::kfd_support::output_streamer::put(out,v.Data3); + roctracer::kfd_support::output_streamer::put(out,v.Data4); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaQueueResource& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.QueueId); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCounterFlags& v) +{ + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaUserContextSaveAreaHeader& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.ControlStackOffset); + roctracer::kfd_support::output_streamer::put(out,v.ControlStackSize); + roctracer::kfd_support::output_streamer::put(out,v.WaveStateOffset); + roctracer::kfd_support::output_streamer::put(out,v.WaveStateSize); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaCacheProperties& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.ProcessorIdLow); + roctracer::kfd_support::output_streamer::put(out,v.CacheLevel); + roctracer::kfd_support::output_streamer::put(out,v.CacheSize); + roctracer::kfd_support::output_streamer::put(out,v.CacheLineSize); + roctracer::kfd_support::output_streamer::put(out,v.CacheLinesPerTag); + roctracer::kfd_support::output_streamer::put(out,v.CacheAssociativity); + roctracer::kfd_support::output_streamer::put(out,v.CacheLatency); + roctracer::kfd_support::output_streamer::put(out,v.CacheType); + roctracer::kfd_support::output_streamer::put(out,v.SiblingMap); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaMemFlags& v) { - roctracer::kfd_support::output_streamer::put(out,v.NumBlocks); - roctracer::kfd_support::output_streamer::put(out,v.NumConcurrent); - roctracer::kfd_support::output_streamer::put(out,v.Blocks[1]); return out; } }; @@ -493,9 +511,32 @@ template<> struct output_streamer { inline static std::ostream& put(std::ostream& out, HsaPmcTraceRoot& v) { - roctracer::kfd_support::output_streamer::put(out,v.TraceBufferMinSizeBytes); - roctracer::kfd_support::output_streamer::put(out,v.NumberOfPasses); - roctracer::kfd_support::output_streamer::put(out,v.TraceId); + roctracer::kfd_support::output_streamer::put(out,v.TraceBufferMinSizeBytes); + roctracer::kfd_support::output_streamer::put(out,v.NumberOfPasses); + roctracer::kfd_support::output_streamer::put(out,v.TraceId); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaGpuTileConfig& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.TileConfig); + roctracer::kfd_support::output_streamer::put(out,v.MacroTileConfig); + roctracer::kfd_support::output_streamer::put(out,v.NumTileConfigs); + roctracer::kfd_support::output_streamer::put(out,v.NumMacroTileConfigs); + roctracer::kfd_support::output_streamer::put(out,v.GbAddrConfig); + roctracer::kfd_support::output_streamer::put(out,v.NumBanks); + roctracer::kfd_support::output_streamer::put(out,v.NumRanks); + roctracer::kfd_support::output_streamer::put(out,v.Reserved); + return out; +} +}; +template<> +struct output_streamer { + inline static std::ostream& put(std::ostream& out, HsaSyncVar& v) +{ + roctracer::kfd_support::output_streamer::put(out,v.SyncVarSize); return out; } }; @@ -505,3 +546,4 @@ struct output_streamer { #include #endif // INC_ROCTRACER_KFD_H_ +