def main(): args = parse_args() if args.dtype == 'float32': args.dtype = 'float' # report some available info if args.device == 'gpu': assert args.num_gpus > 0, "Number of GPUs must be specified in GPU mode" print("__caffe2.cuda_version__=%s" % (json.dumps(workspace.GetCUDAVersion()))) print("__caffe2.cudnn_version__=%s" % (json.dumps(workspace.GetCuDNNVersion()))) try: opts = vars(args) opts['phase'] = 'inference' if args.forward_only else 'training' model_title, times = benchmark(opts) except Exception as err: #TODO: this is not happenning, program terminates earlier. # For now, do not rely on __results.status__=... times = np.zeros(0) model_title = 'Unk' print ("Critical error while running benchmarks (%s). See stacktrace below." % (str(err))) traceback.print_exc(file=sys.stdout) if len(times) > 0: mean_time = np.mean(times) # seconds # Compute mean throughput num_local_devices = 1 if args.device == 'cpu' else args.num_gpus #Number of compute devices per node num_devices = num_local_devices * args.num_workers #Global number of devices replica_batch = args.batch_size #Input is a replica batch mean_throughput = num_devices * replica_batch / mean_time #images / sec # print("__results.time__=%s" % (json.dumps(1000.0 * mean_time))) print("__results.throughput__=%s" % (json.dumps(int(mean_throughput)))) print("__exp.model_title__=%s" % (json.dumps(model_title))) print("__results.time_data__=%s" % (json.dumps((1000.0*times).tolist()))) else: print("__results.status__=%s" % (json.dumps("failure")))
def get_nvidia_info(): return ( get_nvidia_smi_output(), workspace.GetCUDAVersion(), workspace.GetCuDNNVersion(), )
parser.add_argument( '--enable_tensor_core', action='store_true', help= 'Enable volta\'s tensor ops (requires CUDA >= 9, cuDNN >= 7 and NVIDIA Volta GPU)' ) args = parser.parse_args() if args.dtype == 'float32': args.dtype = 'float' # report some available info if args.device == 'gpu': assert args.num_gpus > 0, "Number of GPUs must be specified in GPU mode" print("__caffe2.cuda_version__=%s" % (json.dumps(workspace.GetCUDAVersion()))) print("__caffe2.cudnn_version__=%s" % (json.dumps(workspace.GetCuDNNVersion()))) try: opts = vars(args) opts['phase'] = 'inference' if args.forward_only else 'training' model_title, times = benchmark(opts) except Exception as err: #TODO: this is not happenning, program terminates earlier. # For now, do not rely on __results.status__=... times = np.zeros(0) model_title = 'Unk' print( "Critical error while running benchmarks (%s). See stacktrace below." % (str(err)))
parser.add_argument('--enable_tensor_core', action='store_true', help='Enable volta\'s tensor ops (requires CUDA >= 9, cuDNN >= 7 and NVIDIA Volta GPU)') parser.add_argument('--num_decode_threads', type=int, required=False, default=1, help='Number of image decode threads. For high throughput models such as AlexNetOWT set to 6-8 for 4 Voltas.') parser.add_argument('--float16_compute', nargs='?', const=True, default=False, type=str2bool, help='If true, use FP16 SGD optimizer else use multi-precision SGD optimizer') # These parameters affect the ModelHelper behaviour and are now applied for GPU benchmarks parser.add_argument('--cudnn_workspace_limit_mb', type=int, required=False, default=64, help='CuDNN workspace limit in MBs') parser.add_argument('--use_cudnn', nargs='?', const=True, default=True, type=str2bool, help='Use NVIDIA cuDNN library.') parser.add_argument('--cudnn_exhaustive_search', nargs='?', const=True, default=True, type=str2bool, help='Benchmark inference (if true) else benchmark training.') args = parser.parse_args() if args.dtype == 'float32': args.dtype = 'float' # report some available info if args.device == 'gpu': assert args.num_gpus > 0, "Number of GPUs must be specified in GPU mode" print("__caffe2.cuda_version__=%s" % (json.dumps(workspace.GetCUDAVersion()))) print("__caffe2.cudnn_version__=%s" % (json.dumps(workspace.GetCuDNNVersion()))) try: opts = vars(args) opts['phase'] = 'inference' if args.forward_only else 'training' model_title, times = benchmark(opts) except Exception as err: #TODO: this is not happenning, program terminates earlier. # For now, do not rely on __results.status__=... times = np.zeros(0) model_title = 'Unk' print ("Critical error while running benchmarks (%s). See stacktrace below." % (str(err))) traceback.print_exc(file=sys.stdout) if len(times) > 0: