Class CUDAProfiler


  • public class CUDAProfiler
    extends java.lang.Object
    Contains bindings to CUDA profiler control functions of the low-level CUDA driver API.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CUDAProfiler.Functions
      Contains the function pointers loaded from CU.getLibrary().
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int cuProfilerInitialize​(java.lang.CharSequence configFile, java.lang.CharSequence outputFile, int outputMode)
      Initialize the profiling.
      static int cuProfilerInitialize​(java.nio.ByteBuffer configFile, java.nio.ByteBuffer outputFile, int outputMode)
      Initialize the profiling.
      static int cuProfilerStart()
      Enable profiling.
      static int cuProfilerStop()
      Disable profiling.
      static int ncuProfilerInitialize​(long configFile, long outputFile, int outputMode)
      Unsafe version of: ProfilerInitialize
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • ncuProfilerInitialize

        public static int ncuProfilerInitialize​(long configFile,
                                                long outputFile,
                                                int outputMode)
        Unsafe version of: ProfilerInitialize
      • cuProfilerInitialize

        public static int cuProfilerInitialize​(java.nio.ByteBuffer configFile,
                                               java.nio.ByteBuffer outputFile,
                                               int outputMode)
        
        public static int cuProfilerInitialize​(java.lang.CharSequence configFile,
                                               java.lang.CharSequence outputFile,
                                               int outputMode)
        
        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 configFile 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.

        Limitation: The CUDA profiler cannot be initialized with this API if another profiling tool is already active, as indicated by the CU.CUDA_ERROR_PROFILER_DISABLED return code.

        Typical usage of the profiling APIs is as follows:

        
         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();
             ...
         }
        Parameters:
        configFile - name of the config file that lists the counters/options for profiling
        outputFile - name of the outputFile where the profiling results will be stored
        outputMode - one of:
        OUT_KEY_VALUE_PAIROUT_CSV
      • cuProfilerStart

        public static int cuProfilerStart()
        Enable profiling.

        Enables profile collection by the active profiling tool for the current context. If profiling is already enabled, then cuProfilerStart() has no effect.

        cuProfilerStart and ProfilerStop APIs are used to programmatically control the profiling granularity by allowing profiling to be done only on selective pieces of code.

      • cuProfilerStop

        public static int cuProfilerStop()
        Disable profiling.

        Disables profile collection by the active profiling tool for the current context. If profiling is already disabled, then cuProfilerStop() has no effect.

        ProfilerStart and cuProfilerStop APIs are used to programmatically control the profiling granularity by allowing profiling to be done only on selective pieces of code.