code: public static int cudaProfilerInitialize(String configFile, String outputFile, int outputMode)
      {
          return checkResult(cudaProfilerInitializeNative(configFile, outputFile, outputMode));
      }
docs: Initialize the CUDA profiler.
  
  <pre>
  cudaError_t cudaProfilerInitialize (
  const char* configFile,
  const char* outputFile,
  cudaOutputMode_t outputMode )
  </pre>
  <div>
  <p>Initialize the CUDA profiler.  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 cudaErrorProfilerDisabled return
  code.
  </p>
  <p>Typical usage of the profiling APIs is
  as follows:
  </p>
  <p>for each set of counters/options
  {
  cudaProfilerInitialize(); //Initialize
  profiling,set the counters/options in the config file
  ...
  cudaProfilerStart();
  // code to be profiled
  cudaProfilerStop();
  ...
  cudaProfilerStart();
  // code to be profiled
  cudaProfilerStop();
  ...
  }
  </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 cudaKeyValuePair OR cudaCSV.
  
  @return cudaSuccess, cudaErrorInvalidValue, cudaErrorProfilerDisabled
  
  @see JCuda#cudaProfilerStart
  @see JCuda#cudaProfilerStop