def add_parser_arguments_misc(parser):
    """
    Adds the options that the command line parser will search for, some miscellaneous parameters, like use of gpu,
    timing, etc.
    :param parser: the argument parser
    :return: the same parser, but with the added options.
    """
    parser.add_argument('--use_gpu', action='store_true',
                        help='use GPU (CUDA). For loading data on Windows OS, if you get an Access Denied or Operation '
                             'Not Supported for cuda, you must set --loader_num_workers to 0 '
                             '(you can\'t share CUDA tensors among Windows processes).')
    parser.add_argument('--gpu_num', default="0", type=str)
    parser.add_argument('--map_gpu_beginning', action='store_true',
                        help='Will map all tensors (including FULL dataset) to GPU at the start of the instance, if '
                             '--use_gpu flag is supplied and CUDA is available. This option is NOT recommended if you '
                             'have low GPU memory or if you dataset is very large, since you may quickly run out of '
                             'memory.')
    parser.add_argument('--timing', action='store_true',
                        help='if specified, will display times for several parts of training')
    parser.add_argument('--load_args_from_json', type=str, default=None,
                        help='Path to json file containing args to pass. Should be an object containing the keys of '
                             'the attributes you want to change (keys that you don\'t supply will be left unchanged) '
                             'and their values according to their type (int, str, bool, list, etc.)')
    return parser