CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
531 lines
19 KiB
C++
531 lines
19 KiB
C++
#include "InternalEvent.h"
|
|
#include <omp-tools.h>
|
|
#include <sstream>
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace omptest;
|
|
|
|
TEST(InternalEvent_toString, AssertionSyncPoint) {
|
|
internal::AssertionSyncPoint SP{/*Name=*/"Test Sync Point"};
|
|
|
|
EXPECT_EQ(SP.toString(), "Assertion SyncPoint: 'Test Sync Point'");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, ThreadBegin) {
|
|
internal::ThreadBegin TB{/*ThreadType=*/ompt_thread_t::ompt_thread_initial};
|
|
|
|
EXPECT_EQ(TB.toString(), "OMPT Callback ThreadBegin: ThreadType=1");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, ThreadEnd) {
|
|
internal::ThreadEnd TE{};
|
|
|
|
EXPECT_EQ(TE.toString(), "OMPT Callback ThreadEnd");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, ParallelBegin) {
|
|
internal::ParallelBegin PB{/*NumThreads=*/31};
|
|
|
|
EXPECT_EQ(PB.toString(), "OMPT Callback ParallelBegin: NumThreads=31");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, ParallelEnd) {
|
|
internal::ParallelEnd PE{/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*EncounteringTaskData=*/(ompt_data_t *)0x22,
|
|
/*Flags=*/31,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
EXPECT_EQ(PE.toString(), "OMPT Callback ParallelEnd");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, Work) {
|
|
internal::Work WK{/*WorkType=*/ompt_work_t::ompt_work_loop_dynamic,
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_beginend,
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Count=*/31,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
EXPECT_EQ(WK.toString(),
|
|
"OMPT Callback Work: work_type=11 endpoint=3 parallel_data=0x11 "
|
|
"task_data=0x22 count=31 codeptr=0x33");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, Dispatch_iteration) {
|
|
ompt_data_t DI{.value = 31};
|
|
internal::Dispatch D{/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_iteration,
|
|
/*Instance=*/DI};
|
|
|
|
EXPECT_EQ(D.toString(), "OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=1 instance=[it=31]");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, Dispatch_section) {
|
|
ompt_data_t DI{.ptr = (void *)0x33};
|
|
internal::Dispatch D{/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_section,
|
|
/*Instance=*/DI};
|
|
|
|
EXPECT_EQ(D.toString(), "OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=2 instance=[ptr=0x33]");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, Dispatch_chunks) {
|
|
ompt_dispatch_chunk_t DC{.start = 7, .iterations = 31};
|
|
ompt_data_t DI{.ptr = (void *)&DC};
|
|
|
|
internal::Dispatch DLoop{
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_ws_loop_chunk,
|
|
/*Instance=*/DI};
|
|
|
|
internal::Dispatch DTask{
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_taskloop_chunk,
|
|
/*Instance=*/DI};
|
|
|
|
internal::Dispatch DDist{
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_distribute_chunk,
|
|
/*Instance=*/DI};
|
|
|
|
ompt_data_t DINull{.ptr = nullptr};
|
|
internal::Dispatch DDistNull{
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*Kind=*/ompt_dispatch_t::ompt_dispatch_distribute_chunk,
|
|
/*Instance=*/DINull};
|
|
|
|
EXPECT_EQ(DLoop.toString(),
|
|
"OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=3 instance=[chunk=(start=7, iterations=31)]");
|
|
|
|
EXPECT_EQ(DTask.toString(),
|
|
"OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=4 instance=[chunk=(start=7, iterations=31)]");
|
|
|
|
EXPECT_EQ(DDist.toString(),
|
|
"OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=5 instance=[chunk=(start=7, iterations=31)]");
|
|
|
|
EXPECT_EQ(DDistNull.toString(), "OMPT Callback Dispatch: parallel_data=0x11 "
|
|
"task_data=0x22 kind=5");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TaskCreate) {
|
|
internal::TaskCreate TC{/*EncounteringTaskData=*/(ompt_data_t *)0x11,
|
|
/*EncounteringTaskFrame=*/(const ompt_frame_t *)0x22,
|
|
/*NewTaskData=*/(ompt_data_t *)0x33,
|
|
/*Flags=*/7,
|
|
/*HasDependences=*/31,
|
|
/*CodeptrRA=*/(const void *)0x44};
|
|
|
|
EXPECT_EQ(TC.toString(),
|
|
"OMPT Callback TaskCreate: encountering_task_data=0x11 "
|
|
"encountering_task_frame=0x22 new_task_data=0x33 flags=7 "
|
|
"has_dependences=31 codeptr=0x44");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, ImplicitTask) {
|
|
internal::ImplicitTask IT{
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*ActualParallelism=*/7,
|
|
/*Index=*/31,
|
|
/*Flags=*/127};
|
|
|
|
EXPECT_EQ(IT.toString(),
|
|
"OMPT Callback ImplicitTask: endpoint=1 parallel_data=0x11 "
|
|
"task_data=0x22 actual_parallelism=7 index=31 flags=127");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, SyncRegion) {
|
|
internal::SyncRegion SR{
|
|
/*Kind=*/ompt_sync_region_t::ompt_sync_region_taskwait,
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_end,
|
|
/*ParallelData=*/(ompt_data_t *)0x11,
|
|
/*TaskData=*/(ompt_data_t *)0x22,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
EXPECT_EQ(SR.toString(), "OMPT Callback SyncRegion: kind=5 endpoint=2 "
|
|
"parallel_data=0x11 task_data=0x22 codeptr=0x33");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, Target) {
|
|
internal::Target T{/*Kind=*/ompt_target_t::ompt_target_enter_data_nowait,
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_end,
|
|
/*DeviceNum=*/7,
|
|
/*TaskData=*/(ompt_data_t *)0x11,
|
|
/*TargetId=*/(ompt_id_t)31,
|
|
/*CodeptrRA=*/(const void *)0x22};
|
|
|
|
EXPECT_EQ(T.toString(), "Callback Target: target_id=31 kind=10 "
|
|
"endpoint=2 device_num=7 code=0x22");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TargetEmi) {
|
|
ompt_data_t TaskData{.value = 31};
|
|
ompt_data_t TargetTaskData{.value = 127};
|
|
ompt_data_t TargetData{.value = 8191};
|
|
|
|
internal::TargetEmi T{/*Kind=*/ompt_target_t::ompt_target_update,
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*DeviceNum=*/7,
|
|
/*TaskData=*/(ompt_data_t *)&TaskData,
|
|
/*TargetTaskData=*/(ompt_data_t *)&TargetTaskData,
|
|
/*TargetData=*/(ompt_data_t *)&TargetData,
|
|
/*CodeptrRA=*/(const void *)0x11};
|
|
|
|
internal::TargetEmi TDataNull{
|
|
/*Kind=*/ompt_target_t::ompt_target_update,
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*DeviceNum=*/7,
|
|
/*TaskData=*/(ompt_data_t *)&TaskData,
|
|
/*TargetTaskData=*/(ompt_data_t *)nullptr,
|
|
/*TargetData=*/(ompt_data_t *)&TargetData,
|
|
/*CodeptrRA=*/(const void *)0x11};
|
|
|
|
std::ostringstream StreamT1;
|
|
std::ostringstream StreamT2;
|
|
std::string CallBackPrefix{
|
|
"Callback Target EMI: kind=4 endpoint=1 device_num=7"};
|
|
StreamT1 << CallBackPrefix << std::showbase << std::hex;
|
|
StreamT1 << " task_data=" << &TaskData << " (0x1f)";
|
|
StreamT1 << " target_task_data=" << &TargetTaskData << " (0x7f)";
|
|
StreamT1 << " target_data=" << &TargetData << " (0x1fff)";
|
|
StreamT1 << " code=0x11";
|
|
|
|
StreamT2 << CallBackPrefix << std::showbase << std::hex;
|
|
StreamT2 << " task_data=" << &TaskData << " (0x1f)";
|
|
StreamT2 << " target_task_data=(nil) (0x0)";
|
|
StreamT2 << " target_data=" << &TargetData << " (0x1fff)";
|
|
StreamT2 << " code=0x11";
|
|
|
|
EXPECT_EQ(T.toString(), StreamT1.str());
|
|
EXPECT_EQ(TDataNull.toString(), StreamT2.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TargetDataOp) {
|
|
internal::TargetDataOp TDO{
|
|
/*TargetId=*/7,
|
|
/*HostOpId=*/31,
|
|
/*OpType=*/ompt_target_data_op_t::ompt_target_data_associate,
|
|
/*SrcAddr=*/(void *)0x11,
|
|
/*SrcDeviceNum=*/127,
|
|
/*DstAddr=*/(void *)0x22,
|
|
/*DstDeviceNum=*/8191,
|
|
/*Bytes=*/4096,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
EXPECT_EQ(
|
|
TDO.toString(),
|
|
" Callback DataOp: target_id=7 host_op_id=31 optype=5 src=0x11 "
|
|
"src_device_num=127 dest=0x22 dest_device_num=8191 bytes=4096 code=0x33");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TargetDataOpEmi) {
|
|
ompt_data_t TargetTaskData{.value = 31};
|
|
ompt_data_t TargetData{.value = 127};
|
|
ompt_id_t HostOpId = 8191;
|
|
|
|
internal::TargetDataOpEmi TDO{
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*TargetTaskData=*/(ompt_data_t *)&TargetTaskData,
|
|
/*TargetData=*/(ompt_data_t *)&TargetData,
|
|
/*HostOpId=*/(ompt_id_t *)&HostOpId,
|
|
/*OpType=*/ompt_target_data_op_t::ompt_target_data_disassociate,
|
|
/*SrcAddr=*/(void *)0x11,
|
|
/*SrcDeviceNum=*/1,
|
|
/*DstAddr=*/(void *)0x22,
|
|
/*DstDeviceNum=*/2,
|
|
/*Bytes=*/4096,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
// Set HostOpId=nullptr
|
|
internal::TargetDataOpEmi TDO_HostOpIdNull{
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*TargetTaskData=*/(ompt_data_t *)&TargetTaskData,
|
|
/*TargetData=*/(ompt_data_t *)&TargetData,
|
|
/*HostOpId=*/(ompt_id_t *)nullptr,
|
|
/*OpType=*/ompt_target_data_op_t::ompt_target_data_disassociate,
|
|
/*SrcAddr=*/(void *)0x11,
|
|
/*SrcDeviceNum=*/1,
|
|
/*DstAddr=*/(void *)0x22,
|
|
/*DstDeviceNum=*/2,
|
|
/*Bytes=*/4096,
|
|
/*CodeptrRA=*/(const void *)0x33};
|
|
|
|
std::ostringstream StreamTDO1;
|
|
std::ostringstream StreamTDO2;
|
|
std::string CallBackPrefix{" Callback DataOp EMI: endpoint=1 optype=6"};
|
|
std::string CallBackSuffix{
|
|
" src=0x11 src_device_num=1 dest=0x22 dest_device_num=2 "
|
|
"bytes=4096 code=0x33"};
|
|
StreamTDO1 << CallBackPrefix << std::showbase << std::hex;
|
|
StreamTDO1 << " target_task_data=" << &TargetTaskData << " (0x1f)";
|
|
StreamTDO1 << " target_data=" << &TargetData << " (0x7f)";
|
|
StreamTDO1 << " host_op_id=" << &HostOpId << " (0x1fff)";
|
|
StreamTDO1 << CallBackSuffix;
|
|
|
|
StreamTDO2 << CallBackPrefix << std::showbase << std::hex;
|
|
StreamTDO2 << " target_task_data=" << &TargetTaskData << " (0x1f)";
|
|
StreamTDO2 << " target_data=" << &TargetData << " (0x7f)";
|
|
StreamTDO2 << " host_op_id=(nil) (0x0)";
|
|
StreamTDO2 << CallBackSuffix;
|
|
|
|
EXPECT_EQ(TDO.toString(), StreamTDO1.str());
|
|
EXPECT_EQ(TDO_HostOpIdNull.toString(), StreamTDO2.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TargetSubmit) {
|
|
internal::TargetSubmit TS{/*TargetId=*/7,
|
|
/*HostOpId=*/31,
|
|
/*RequestedNumTeams=*/127};
|
|
|
|
EXPECT_EQ(TS.toString(),
|
|
" Callback Submit: target_id=7 host_op_id=31 req_num_teams=127");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, TargetSubmitEmi) {
|
|
ompt_data_t TargetData{.value = 127};
|
|
ompt_id_t HostOpId = 8191;
|
|
internal::TargetSubmitEmi TS{
|
|
/*Endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*TargetData=*/(ompt_data_t *)&TargetData,
|
|
/*HostOpId=*/(ompt_id_t *)&HostOpId,
|
|
/*RequestedNumTeams=*/7};
|
|
|
|
std::ostringstream StreamTS;
|
|
std::string CallBackPrefix{
|
|
" Callback Submit EMI: endpoint=1 req_num_teams=7"};
|
|
StreamTS << CallBackPrefix << std::showbase << std::hex;
|
|
StreamTS << " target_data=" << &TargetData << " (0x7f)";
|
|
StreamTS << " host_op_id=" << &HostOpId << " (0x1fff)";
|
|
|
|
EXPECT_EQ(TS.toString(), StreamTS.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, DeviceInitialize) {
|
|
const char *Type = "DeviceType";
|
|
const char *DocStr = "DocumentationString";
|
|
|
|
internal::DeviceInitialize DI{/*DeviceNum=*/7,
|
|
/*Type=*/Type,
|
|
/*Device=*/(ompt_device_t *)0x11,
|
|
/*LookupFn=*/(ompt_function_lookup_t)0x22,
|
|
/*DocStr=*/DocStr};
|
|
|
|
internal::DeviceInitialize DINull{/*DeviceNum=*/0,
|
|
/*Type=*/nullptr,
|
|
/*Device=*/nullptr,
|
|
/*LookupFn=*/(ompt_function_lookup_t)0x0,
|
|
/*DocStr=*/nullptr};
|
|
|
|
std::ostringstream StreamDI;
|
|
std::string CallBackPrefix{"Callback Init: device_num=7 type=DeviceType "
|
|
"device=0x11 lookup=0x22 doc="};
|
|
StreamDI << CallBackPrefix << std::showbase << std::hex;
|
|
StreamDI << (uint64_t)DocStr;
|
|
EXPECT_EQ(DI.toString(), StreamDI.str());
|
|
|
|
// TODO This looks inconsistent: (null) vs. (nil)
|
|
EXPECT_EQ(DINull.toString(), "Callback Init: device_num=0 type=(null) "
|
|
"device=(nil) lookup=(nil) doc=(nil)");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, DeviceFinalize) {
|
|
internal::DeviceFinalize DF{/*DeviceNum=*/7};
|
|
|
|
EXPECT_EQ(DF.toString(), "Callback Fini: device_num=7");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, DeviceLoad) {
|
|
const char *Filename = "FilenameToLoad";
|
|
|
|
internal::DeviceLoad DL{/*DeviceNum=*/7,
|
|
/*Filename=*/Filename,
|
|
/*OffsetInFile=*/31,
|
|
/*VmaInFile=*/(void *)0x11,
|
|
/*Bytes=*/127,
|
|
/*HostAddr=*/(void *)0x22,
|
|
/*DeviceAddr=*/(void *)0x33,
|
|
/*ModuleId=*/8191};
|
|
|
|
internal::DeviceLoad DLNull{/*DeviceNum=*/0,
|
|
/*Filename=*/nullptr,
|
|
/*OffsetInFile=*/0,
|
|
/*VmaInFile=*/nullptr,
|
|
/*Bytes=*/0,
|
|
/*HostAddr=*/nullptr,
|
|
/*DeviceAddr=*/nullptr,
|
|
/*ModuleId=*/0};
|
|
|
|
EXPECT_EQ(
|
|
DL.toString(),
|
|
"Callback Load: device_num:7 module_id:8191 "
|
|
"filename:FilenameToLoad host_addr:0x22 device_addr:0x33 bytes:127");
|
|
|
|
// TODO This looks inconsistent: (null) vs. (nil) and ':' instead of '='
|
|
EXPECT_EQ(DLNull.toString(),
|
|
"Callback Load: device_num:0 module_id:0 filename:(null) "
|
|
"host_addr:(nil) device_addr:(nil) bytes:0");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRequest) {
|
|
size_t Bytes = 7;
|
|
ompt_buffer_t *Buffer = (void *)0x11;
|
|
|
|
internal::BufferRequest BR{/*DeviceNum=*/31,
|
|
/*Buffer=*/&Buffer,
|
|
/*Bytes=*/&Bytes};
|
|
|
|
internal::BufferRequest BRNull{/*DeviceNum=*/127,
|
|
/*Buffer=*/nullptr,
|
|
/*Bytes=*/nullptr};
|
|
|
|
EXPECT_EQ(BR.toString(),
|
|
"Allocated 7 bytes at 0x11 in buffer request callback");
|
|
EXPECT_EQ(BRNull.toString(),
|
|
"Allocated 0 bytes at (nil) in buffer request callback");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferComplete) {
|
|
ompt_buffer_t *Buffer = (void *)0x11;
|
|
|
|
internal::BufferComplete BC{/*DeviceNum=*/7,
|
|
/*Buffer=*/Buffer,
|
|
/*Bytes=*/127,
|
|
/*Begin=*/8191,
|
|
/*BufferOwned=*/1};
|
|
|
|
internal::BufferComplete BCNull{/*DeviceNum=*/0,
|
|
/*Buffer=*/nullptr,
|
|
/*Bytes=*/0,
|
|
/*Begin=*/0,
|
|
/*BufferOwned=*/0};
|
|
|
|
EXPECT_EQ(BC.toString(),
|
|
"Executing buffer complete callback: 7 0x11 127 0x1fff 1");
|
|
EXPECT_EQ(BCNull.toString(),
|
|
"Executing buffer complete callback: 0 (nil) 0 (nil) 0");
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRecordInvalid) {
|
|
ompt_record_ompt_t InvalidRecord{
|
|
/*type=*/ompt_callbacks_t::ompt_callback_parallel_begin,
|
|
/*time=*/7,
|
|
/*thread_id=*/31,
|
|
/*target_id=*/127,
|
|
/*record=*/{.parallel_begin = {}}};
|
|
|
|
internal::BufferRecord BRNull{/*RecordPtr=*/nullptr};
|
|
internal::BufferRecord BRInvalid{/*RecordPtr=*/&InvalidRecord};
|
|
|
|
std::ostringstream StreamBRInvalid;
|
|
StreamBRInvalid << "rec=" << std::showbase << std::hex << &InvalidRecord;
|
|
StreamBRInvalid << " type=3 (unsupported record type)";
|
|
|
|
EXPECT_EQ(BRNull.toString(), "rec=(nil) type=0 (unsupported record type)");
|
|
EXPECT_EQ(BRInvalid.toString(), StreamBRInvalid.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRecordTarget) {
|
|
ompt_record_target_t SubRecordTarget{
|
|
/*kind=*/ompt_target_t::ompt_target_update,
|
|
/*endpoint=*/ompt_scope_endpoint_t::ompt_scope_begin,
|
|
/*device_num=*/2,
|
|
/*task_id=*/127,
|
|
/*target_id=*/31,
|
|
/*codeptr_ra=*/(const void *)0x11};
|
|
|
|
ompt_record_ompt_t TargetRecord{
|
|
/*type=*/ompt_callbacks_t::ompt_callback_target,
|
|
/*time=*/7,
|
|
/*thread_id=*/29,
|
|
/*target_id=*/31,
|
|
/*record*/ {.target = SubRecordTarget}};
|
|
|
|
internal::BufferRecord BR{/*RecordPtr=*/&TargetRecord};
|
|
|
|
std::ostringstream StreamBR;
|
|
StreamBR << "rec=" << std::showbase << std::hex << &TargetRecord;
|
|
StreamBR << " type=8 (Target task) time=7 thread_id=29 target_id=31 kind=4";
|
|
StreamBR << " endpoint=1 device=2 task_id=127 codeptr=0x11";
|
|
|
|
EXPECT_EQ(BR.toString(), StreamBR.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRecordDataOp) {
|
|
ompt_record_target_data_op_t SubRecordTargetDataOp{
|
|
/*host_op_id=*/7,
|
|
/*optype=*/ompt_target_data_op_t::ompt_target_data_alloc_async,
|
|
/*src_addr=*/(void *)0x11,
|
|
/*src_device_num=*/1,
|
|
/*dest_addr=*/(void *)0x22,
|
|
/*dest_device_num=*/2,
|
|
/*bytes=*/127,
|
|
/*end_time=*/128,
|
|
/*codeptr_ra=*/(const void *)0x33,
|
|
};
|
|
|
|
ompt_record_ompt_t DataOpRecord{
|
|
/*type=*/ompt_callbacks_t::ompt_callback_target_data_op_emi,
|
|
/*time=*/8,
|
|
/*thread_id=*/3,
|
|
/*target_id=*/5,
|
|
/*record=*/{.target_data_op = SubRecordTargetDataOp}};
|
|
|
|
internal::BufferRecord BR{/*RecordPtr=*/&DataOpRecord};
|
|
|
|
std::ostringstream StreamBR;
|
|
StreamBR << "rec=" << std::showbase << std::hex << &DataOpRecord;
|
|
StreamBR << " type=34 (Target data op) time=8 thread_id=3 target_id=5";
|
|
StreamBR << " host_op_id=7 optype=17 src_addr=0x11 src_device=1";
|
|
StreamBR << " dest_addr=0x22 dest_device=2 bytes=127 end_time=128";
|
|
StreamBR << " duration=120 ns codeptr=0x33";
|
|
|
|
EXPECT_EQ(BR.toString(), StreamBR.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRecordKernel) {
|
|
ompt_record_target_kernel_t SubRecordTargetKernel{
|
|
/*host_op_id=*/11,
|
|
/*requested_num_teams=*/127,
|
|
/*granted_num_teams=*/63,
|
|
/*end_time=*/8191,
|
|
};
|
|
|
|
ompt_record_ompt_t KernelRecord{
|
|
/*type=*/ompt_callbacks_t::ompt_callback_target_submit_emi,
|
|
/*time=*/9,
|
|
/*thread_id=*/19,
|
|
/*target_id=*/33,
|
|
/*record=*/{.target_kernel = SubRecordTargetKernel}};
|
|
|
|
internal::BufferRecord BR{/*RecordPtr=*/&KernelRecord};
|
|
|
|
std::ostringstream StreamBR;
|
|
StreamBR << "rec=" << std::showbase << std::hex << &KernelRecord;
|
|
StreamBR << " type=35 (Target kernel) time=9 thread_id=19 target_id=33";
|
|
StreamBR << " host_op_id=11 requested_num_teams=127 granted_num_teams=63";
|
|
StreamBR << " end_time=8191 duration=8182 ns";
|
|
|
|
EXPECT_EQ(BR.toString(), StreamBR.str());
|
|
}
|
|
|
|
TEST(InternalEvent_toString, BufferRecordDeallocation) {
|
|
internal::BufferRecordDeallocation BRD{/*Buffer=*/(ompt_record_ompt_t *)0x11};
|
|
internal::BufferRecordDeallocation BRDNull{/*Buffer=*/nullptr};
|
|
|
|
EXPECT_EQ(BRD.toString(), "Deallocated 0x11");
|
|
EXPECT_EQ(BRDNull.toString(), "Deallocated (nil)");
|
|
}
|