code: public void reportDeviceUsage(StringBuilder builder, boolean withProfilingInfo) {
        builder.append("Device Usage by Kernel Subclass");
        if (withProfilingInfo) {
           builder.append(" (showing mean elapsed times in milliseconds)");
        }
        builder.append("\n\n");
        for (PreferencesWrapper wrapper : preferences.values()) {
           KernelPreferences preferences = wrapper.getPreferences();
           Class<? extends Kernel> klass = wrapper.getKernelClass();
           KernelProfile profile = withProfilingInfo ? profiles.get(klass) : null;
           builder.append(klass.getName()).append(":\n\tusing ").append(preferences.getPreferredDevice(null).getShortDescription());
           List<Device> failedDevices = preferences.getFailedDevices();
           if (failedDevices.size() > 0) {
              builder.append(", failed devices = ");
              for (int i = 0; i < failedDevices.size(); ++i) {
                 builder.append(failedDevices.get(i).getShortDescription());
                 if (i < failedDevices.size() - 1) {
                    builder.append(" | ");
                 }
              }
           }
           if (profile != null) {
              builder.append("\n");
              int row = 0;
              for (KernelDeviceProfile deviceProfile : profile.getDeviceProfiles()) {
                 if (row == 0) {
                    builder.append(deviceProfile.getTableHeader()).append("\n");
                 }
                 builder.append(deviceProfile.getAverageAsTableRow()).append("\n");
                 ++row;
              }
           }
           builder.append("\n");
        }
     }
docs: Append a report to {@code builder} which contains information, per Kernel subclass, on which device is currently being used for the
  kernel class, and which (if any) devices failed to execute a given Kernel.