code: public static int cuProfilerInitialize(String configFile, String outputFile, int outputMode)
      {
          return checkResult(cuProfilerInitializeNative(configFile, outputFile, outputMode));
      }
docs: Initialize the profiling.
  
  <pre>
  CUresult cuProfilerInitialize (
  const char* configFile,
  const char* outputFile,
  CUoutput_mode outputMode )
  </pre>
  <div>
  <p>Initialize the profiling.  Using this
  API user can initialize the CUDA profiler by specifying the configuration
  file, output
  file and output file format. This API is
  generally used to profile different set of counters by looping the
  kernel launch.
  The <tt>configFile</tt> parameter can
  be used to select profiling options including profiler counters. Refer
  to the "Compute Command Line Profiler
  User Guide" for supported profiler
  options and counters.
  </p>
  <p>Limitation: The CUDA profiler cannot be
  initialized with this API if another profiling tool is already active,
  as indicated
  by the CUDA_ERROR_PROFILER_DISABLED
  return code.
  </p>
  <p>Typical usage of the profiling APIs is
  as follows:
  </p>
  <p>for each set of counters/options
  {
  cuProfilerInitialize(); //Initialize
  profiling, set the counters or options in the config file
  ...
  cuProfilerStart();
  // code to be profiled
  cuProfilerStop();
  ...
  cuProfilerStart();
  // code to be profiled
  cuProfilerStop();
  ...
  }
  </p>
  <div>
  <span>Note:</span>
  <p>Note that this
  function may also return error codes from previous, asynchronous
  launches.
  </p>
  </div>
  </p>
  </div>
  
  @param configFile Name of the config file that lists the counters/options for profiling.
  @param outputFile Name of the outputFile where the profiling results will be stored.
  @param outputMode outputMode, can be CU_OUT_KEY_VALUE_PAIR or CU_OUT_CSV.
  
  @return CUDA_SUCCESS, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE,
  CUDA_ERROR_PROFILER_DISABLED
  
  @see JCudaDriver#cuProfilerStart
  @see JCudaDriver#cuProfilerStop