brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 24d7363 Raw
103 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 registers non-EMI callbacks9 */10 11#include <omp.h>12#include <stdio.h>13 14#include "callbacks.h"15#include "register_non_emi.h"16 17int main() {18  int N = 100000;19 20  int a[N];21  int b[N];22 23  int i;24 25  for (i = 0; i < N; i++)26    a[i] = 0;27 28  for (i = 0; i < N; i++)29    b[i] = i;30 31#pragma omp target parallel for32  {33    for (int j = 0; j < N; j++)34      a[j] = b[j];35  }36 37#pragma omp target teams distribute parallel for38  {39    for (int j = 0; j < N; j++)40      a[j] = b[j];41  }42 43  int rc = 0;44  for (i = 0; i < N; i++)45    if (a[i] != b[i]) {46      rc++;47      printf("Wrong value: a[%d]=%d\n", i, a[i]);48    }49 50  if (!rc)51    printf("Success\n");52 53  return rc;54}55 56// clang-format off57/// CHECK: Callback Init:58/// CHECK: Callback Load:59/// CHECK: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=ompt_target endpoint=ompt_scope_begin device_num=[[DEVICE_NUM:[0-9]+]]60/// CHECK-NOT: code=(nil)61/// CHECK: code=[[CODE1:.*]]62/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_alloc63/// CHECK: code=[[CODE1]]64/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_to_device65/// CHECK: code=[[CODE1]]66/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_alloc67/// CHECK: code=[[CODE1]]68/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_to_device69/// CHECK: code=[[CODE1]]70/// CHECK: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=171/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_from_device72/// CHECK: code=[[CODE1]]73/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_from_device74/// CHECK: code=[[CODE1]]75/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_delete76/// CHECK: code=[[CODE1]]77/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_delete78/// CHECK: code=[[CODE1]]79/// CHECK: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=ompt_target endpoint=ompt_scope_end device_num=[[DEVICE_NUM]] code=[[CODE1]]80 81/// CHECK: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=ompt_target endpoint=ompt_scope_begin device_num=[[DEVICE_NUM]]82/// CHECK-NOT: code=(nil)83/// CHECK: code=[[CODE2:.*]]84/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_alloc85/// CHECK: code=[[CODE2]]86/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_to_device87/// CHECK: code=[[CODE2]]88/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_alloc89/// CHECK: code=[[CODE2]]90/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_to_device91/// CHECK: code=[[CODE2]]92/// CHECK: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=093/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_from_device94/// CHECK: code=[[CODE2]]95/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_transfer_from_device96/// CHECK: code=[[CODE2]]97/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_delete98/// CHECK: code=[[CODE2]]99/// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=ompt_target_data_delete100/// CHECK: code=[[CODE2]]101/// CHECK: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=ompt_target endpoint=ompt_scope_end device_num=[[DEVICE_NUM]] code=[[CODE2]]102/// CHECK: Callback Fini:103