Beispiel #1
0
void acc_dbg_dump_data_env_rec(struct acc_data_environment_t_ * data_env, size_t lvl) {
  printf("[debug]   Level %zd\n", lvl);

  size_t num_devices = acc_runtime.opencl_data->num_devices[acc_runtime.opencl_data->num_platforms];
  size_t i, j;
  for (i = 0; i < num_devices; i++) {
    if (data_env->data_allocs[i]->count == 0) continue;
    printf("[debug]     On device #%zd:\n", i);
    for (j = 0; j < data_env->data_allocs[i]->count; j++) {
      h_void * host_ptr = *(void **)(data_env->data_allocs[i]->datas + j * data_env->data_allocs[i]->storage_size);
      d_void * dev_ptr = acc_get_deviceptr(i, host_ptr);
      printf("[debug]       %zd : {%x, %x}\n", j, host_ptr, dev_ptr);
    }
  }

  if (data_env->child != NULL)
    acc_dbg_dump_data_env_rec(data_env->child, lvl + 1);
}
d_void * acc_deviceptr_(size_t device_idx, h_void * host_ptr) {

  d_void * dev_ptr = acc_get_deviceptr(device_idx, host_ptr);

  return dev_ptr;
}