106 lines · c
1// clang-format off2// RUN: %libomptarget-compile-run-and-check-generic3// REQUIRES: ompt4// REQUIRES: gpu5// clang-format on6 7/*8 * Example OpenMP program that shows that map-EMI callbacks are not supported.9 */10 11#include <assert.h>12#include <omp.h>13#include <stdio.h>14 15#include "callbacks.h"16#include "register_emi_map.h"17 18int main() {19 int N = 100000;20 21 int a[N];22 int b[N];23 24 int i;25 26 for (i = 0; i < N; i++)27 a[i] = 0;28 29 for (i = 0; i < N; i++)30 b[i] = i;31 32#pragma omp target parallel for33 {34 for (int j = 0; j < N; j++)35 a[j] = b[j];36 }37 38#pragma omp target teams distribute parallel for39 {40 for (int j = 0; j < N; j++)41 a[j] = b[j];42 }43 44 int rc = 0;45 for (i = 0; i < N; i++)46 if (a[i] != b[i]) {47 rc++;48 printf("Wrong value: a[%d]=%d\n", i, a[i]);49 }50 51 if (!rc)52 printf("Success\n");53 54 return rc;55}56 57// clang-format off58/// CHECK: 0: Could not register callback 'ompt_callback_target_map_emi'59/// CHECK: Callback Init:60/// CHECK: Callback Load:61/// CHECK: Callback Target EMI: kind=ompt_target endpoint=ompt_scope_begin62/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_alloc63/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_alloc64/// CHECK-NOT: dest=(nil)65/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_to_device66/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_to_device67/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_alloc68/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_alloc69/// CHECK-NOT: dest=(nil)70/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_to_device71/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_to_device72/// CHECK: Callback Submit EMI: endpoint=ompt_scope_begin req_num_teams=173/// CHECK: Callback Submit EMI: endpoint=ompt_scope_end req_num_teams=174/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_from_device75/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_from_device76/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_from_device77/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_from_device78/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_delete79/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_delete80/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_delete81/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_delete82/// CHECK: Callback Target EMI: kind=ompt_target endpoint=ompt_scope_end83/// CHECK: Callback Target EMI: kind=ompt_target endpoint=ompt_scope_begin84/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_alloc85/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_alloc86/// CHECK-NOT: dest=(nil)87/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_to_device88/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_to_device89/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_alloc90/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_alloc91/// CHECK-NOT: dest=(nil)92/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_to_device93/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_to_device94/// CHECK: Callback Submit EMI: endpoint=ompt_scope_begin req_num_teams=095/// CHECK: Callback Submit EMI: endpoint=ompt_scope_end req_num_teams=096/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_from_device97/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_from_device98/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_transfer_from_device99/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_transfer_from_device100/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_delete101/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_delete102/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_begin optype=ompt_target_data_delete103/// CHECK: Callback DataOp EMI: endpoint=ompt_scope_end optype=ompt_target_data_delete104/// CHECK: Callback Target EMI: kind=ompt_target endpoint=ompt_scope_end105/// CHECK: Callback Fini:106