@@ -106,6 +106,20 @@ using namespace llvm::omp::xteam_red;
106
106
} while (0 )
107
107
#endif
108
108
109
+ double setTicksToTime () {
110
+ uint64_t TicksFrequency = 1 ;
111
+ double TicksToTime = 1.0 ;
112
+
113
+ hsa_status_t Status =
114
+ hsa_system_get_info (HSA_SYSTEM_INFO_TIMESTAMP_FREQUENCY, &TicksFrequency);
115
+ if (Status == HSA_STATUS_SUCCESS)
116
+ TicksToTime = (double )1e9 / (double )TicksFrequency;
117
+ else
118
+ DP (" Error calling hsa_system_get_info for timestamp frequency\n " );
119
+
120
+ return TicksToTime;
121
+ }
122
+
109
123
#ifdef OMPT_SUPPORT
110
124
#include " OmptDeviceTracing.h"
111
125
#include < omp-tools.h>
@@ -193,15 +207,7 @@ void setOmptAsyncCopyProfile(bool Enable) {
193
207
}
194
208
195
209
// / Compute system timestamp conversion factor, modeled after ROCclr.
196
- void setOmptTicksToTime () {
197
- uint64_t TicksFrequency = 1 ;
198
- hsa_status_t Status =
199
- hsa_system_get_info (HSA_SYSTEM_INFO_TIMESTAMP_FREQUENCY, &TicksFrequency);
200
- if (Status == HSA_STATUS_SUCCESS)
201
- TicksToTime = (double )1e9 / (double )TicksFrequency;
202
- else
203
- DP (" Error calling hsa_system_get_info for timestamp frequency\n " );
204
- }
210
+ void setOmptTicksToTime () { TicksToTime = setTicksToTime (); }
205
211
206
212
// / Get the current HSA-based device timestamp.
207
213
uint64_t getSystemTimestampInNs () {
@@ -1669,6 +1675,10 @@ struct AMDGPUStreamTy {
1669
1675
uint32_t NumTeams;
1670
1676
uint32_t NumThreads;
1671
1677
KernelRunRecordTy *KernelRunRecords;
1678
+
1679
+ PostKernelRunProcessingArgsTy ()
1680
+ : Agent{0 }, Signal(nullptr ), TicksToTime(setTicksToTime()), NumTeams(0 ),
1681
+ NumThreads (0 ), KernelRunRecords(nullptr ) {}
1672
1682
};
1673
1683
1674
1684
using AMDGPUStreamCallbackTy = Error(void *Data);
@@ -2151,7 +2161,6 @@ struct AMDGPUStreamTy {
2151
2161
if (!KernelRecords->reachedRunLimitForKernel (KernelName)) {
2152
2162
PostKernelRunProcessingArgs.Agent = Agent;
2153
2163
PostKernelRunProcessingArgs.Signal = OutputSignal;
2154
- PostKernelRunProcessingArgs.TicksToTime = 1.0 ;
2155
2164
PostKernelRunProcessingArgs.KernelName = KernelName;
2156
2165
PostKernelRunProcessingArgs.NumTeams = NumBlocks[0 ];
2157
2166
PostKernelRunProcessingArgs.NumThreads = NumThreads[0 ];
0 commit comments