Commit e7e1827e authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

remove variable length arrays in gpu lib

parent c9817b0d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ int UCL_Device::set_platform(int pid) {
    _num_devices=0;
    return UCL_ERROR;
  }
  cl_device_id device_list[_num_devices];
  cl_device_id *device_list = new cl_device_id[_num_devices];
  CL_SAFE_CALL(clGetDeviceIDs(_cl_platform,CL_DEVICE_TYPE_ALL,n,device_list,
                              &n));

@@ -362,7 +362,7 @@ int UCL_Device::set_platform(int pid) {
    _cl_devices.push_back(device_list[i]);
    add_properties(device_list[i]);
  }

  delete[] device_list;
  return UCL_SUCCESS;
}

@@ -518,13 +518,14 @@ int UCL_Device::device_type(const int i) {
int UCL_Device::set(int num) {
  clear();

  cl_device_id device_list[_num_devices];
  cl_device_id *device_list = new cl_device_id[_num_devices];
  cl_uint n;
  CL_SAFE_CALL(clGetDeviceIDs(_cl_platform,CL_DEVICE_TYPE_ALL,_num_devices,
                               device_list,&n));

  _device=num;
  _cl_device=device_list[_device];
  delete[] device_list;
  return create_context();
}

+3 −2
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ class UCL_Program {
      size_t ms;
      CL_SAFE_CALL(clGetProgramBuildInfo(_program,_device,CL_PROGRAM_BUILD_LOG,0,
                                         NULL, &ms));
      char build_log[ms];
      char *build_log = new char[ms];
      CL_SAFE_CALL(clGetProgramBuildInfo(_program,_device,CL_PROGRAM_BUILD_LOG,ms,
                                         build_log, NULL));

@@ -127,8 +127,9 @@ class UCL_Program {
                  << "----------------------------------------------------------\n";
        std::cerr << build_log << std::endl;
        #endif
        delete[] build_log;
        return UCL_COMPILE_ERROR;
      }
      } else delete[] build_log;
    }

    return UCL_SUCCESS;
+2 −1
Original line number Diff line number Diff line
@@ -407,7 +407,7 @@ inline void _ocl_build(cl_program &program, cl_device_id &device,
  size_t ms;
  CL_SAFE_CALL(clGetProgramBuildInfo(program, device,CL_PROGRAM_BUILD_LOG, 0,
                                     NULL, &ms));
  char build_log[ms];
  char *build_log = new char[ms];
  CL_SAFE_CALL(clGetProgramBuildInfo(program,device,CL_PROGRAM_BUILD_LOG,ms,
                                     build_log, NULL));

@@ -416,6 +416,7 @@ inline void _ocl_build(cl_program &program, cl_device_id &device,
            << " Error compiling OpenCL Program...\n"
            << "----------------------------------------------------------\n";
  std::cerr << build_log << std::endl;
  delete[] build_log;
}

inline void _ocl_kernel_from_source(cl_context &context, cl_device_id &device,
+2 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int first_gpu,
  // Get the names of all nodes
  int name_length;
  char node_name[MPI_MAX_PROCESSOR_NAME];
  char node_names[MPI_MAX_PROCESSOR_NAME*_world_size];
  char *node_names = new char[MPI_MAX_PROCESSOR_NAME*_world_size];
  MPI_Get_processor_name(node_name,&name_length);
  MPI_Allgather(&node_name,MPI_MAX_PROCESSOR_NAME,MPI_CHAR,&node_names,
                MPI_MAX_PROCESSOR_NAME,MPI_CHAR,_comm_world);
@@ -104,6 +104,7 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int first_gpu,
      split_id=split_num;
    split_num++;
  }
  delete[] node_names;

  // Set up a per node communicator and find rank within
  MPI_Comm node_comm;