@@ -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 () {
@@ -1668,6 +1674,10 @@ struct AMDGPUStreamTy {
1668
1674
uint32_t NumTeams;
1669
1675
uint32_t NumThreads;
1670
1676
KernelRunRecordTy *KernelRunRecords;
1677
+
1678
+ PostKernelRunProcessingArgsTy ()
1679
+ : Agent{0 }, Signal(nullptr ), TicksToTime(setTicksToTime()), NumTeams(0 ),
1680
+ NumThreads (0 ), KernelRunRecords(nullptr ) {}
1671
1681
};
1672
1682
1673
1683
using AMDGPUStreamCallbackTy = Error(void *Data);
@@ -2154,7 +2164,6 @@ struct AMDGPUStreamTy {
2154
2164
if (!KernelRecords->reachedRunLimitForKernel (KernelName)) {
2155
2165
PostKernelRunProcessingArgs.Agent = Agent;
2156
2166
PostKernelRunProcessingArgs.Signal = OutputSignal;
2157
- PostKernelRunProcessingArgs.TicksToTime = 1.0 ;
2158
2167
PostKernelRunProcessingArgs.KernelName = KernelName;
2159
2168
PostKernelRunProcessingArgs.NumTeams = NumBlocks[0 ];
2160
2169
PostKernelRunProcessingArgs.NumThreads = NumThreads[0 ];
0 commit comments