mirror of
https://github.com/andreinechaev/nvcc4jupyter.git
synced 2026-06-16 12:10:49 +05:30
Add function that modifies the default profiler/compiler arguments to allow reusing them in multiple magic command calls
This commit is contained in:
+49
-2
@@ -3,6 +3,39 @@ Parsers for the CUDA magic commands.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
from typing import Callable, Optional
|
||||
|
||||
_default_profiler_args: str = ""
|
||||
_default_compiler_args: str = ""
|
||||
|
||||
|
||||
def set_defaults(
|
||||
compiler_args: Optional[str] = None, profiler_args: Optional[str] = None
|
||||
) -> None:
|
||||
"""
|
||||
Set the default values for various arguments of the magic commands. These
|
||||
values will be used if the user does not explicitly provide those arguments
|
||||
to override this behaviour on a cell by cell basis.
|
||||
|
||||
Args:
|
||||
compiler_args: If not None, this value becomes the new default compiler
|
||||
config. Defaults to "".
|
||||
profiler_args: If not None, this value becomes the new default profiler
|
||||
config. Defaults to "".
|
||||
"""
|
||||
|
||||
# pylint: disable=global-statement
|
||||
global _default_compiler_args
|
||||
global _default_profiler_args
|
||||
if compiler_args is not None:
|
||||
_default_compiler_args = compiler_args
|
||||
if profiler_args is not None:
|
||||
_default_profiler_args = profiler_args
|
||||
|
||||
|
||||
def str_to_lambda(arg: str) -> Callable[[], str]:
|
||||
"""Convert argparse string to lambda"""
|
||||
return lambda: arg
|
||||
|
||||
|
||||
def get_parser_cuda() -> argparse.ArgumentParser:
|
||||
@@ -18,8 +51,22 @@ def get_parser_cuda() -> argparse.ArgumentParser:
|
||||
)
|
||||
parser.add_argument("-t", "--timeit", action="store_true")
|
||||
parser.add_argument("-p", "--profile", action="store_true")
|
||||
parser.add_argument("-a", "--profiler-args", type=str, default="")
|
||||
parser.add_argument("-c", "--compiler-args", type=str, default="")
|
||||
|
||||
# --profiler-args and --compiler-args values are lambda functions to allow
|
||||
# changing the default value at runtime
|
||||
parser.add_argument(
|
||||
"-a",
|
||||
"--profiler-args",
|
||||
type=str_to_lambda,
|
||||
default=lambda: _default_profiler_args,
|
||||
)
|
||||
parser.add_argument(
|
||||
"-c",
|
||||
"--compiler-args",
|
||||
type=str_to_lambda,
|
||||
default=lambda: _default_compiler_args,
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user