




'''simple docstring'''


import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp
def 						lowerCamelCase__   (				):
						__snake_case						 =   ArgumentParser(
						    description=(
						        'PyTorch TPU distributed training launch helper utility that will spawn up multiple distributed processes'
						    )							)

						# Optional arguments for the launch helper
						parser.add_argument('--num_cores'    ,	type=a    ,	default=1    ,	help='Number of TPU cores to use (1 or 8).'							)

						# positional
						parser.add_argument(
						    'training_script'    ,	type=a    ,	help=(
						        'The full path to the single TPU training '
						        'program/script to be launched in parallel, '
						        'followed by all the arguments for the '
						        'training script'
						    )    ,	)

						# rest from the training program
						parser.add_argument('training_script_args'    ,	nargs=a							)

						return parser.parse_args()
def 						lowerCamelCase__   (				):
						__snake_case						 =   parse_args()

						# Import training_script as a module.
						__snake_case						 =   Path(args.training_script							)
						sys.path.append(str(script_fpath.parent.resolve()							)							)
						__snake_case						 =   script_fpath.stem
						__snake_case						 =   importlib.import_module(a							)

						# Patch sys.argv
						__snake_case						 =   [args.training_script] + args.training_script_args + ['--tpu_num_cores', str(args.num_cores							)]

						xmp.spawn(mod._mp_fn    ,	args=()    ,	nprocs=args.num_cores							)


if __name__ == "__main__":
	main()







'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


_lowercase  =			{
    """configuration_biogpt""": ["""BIOGPT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """BioGptConfig"""],
    """tokenization_biogpt""": ["""BioGptTokenizer"""],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_lowercase  =			[
	    """BIOGPT_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """BioGptForCausalLM""",
	    """BioGptForTokenClassification""",
	    """BioGptForSequenceClassification""",
	    """BioGptModel""",
	    """BioGptPreTrainedModel""",
	]


if TYPE_CHECKING:
	from .configuration_biogpt import BIOGPT_PRETRAINED_CONFIG_ARCHIVE_MAP, BioGptConfig
	from .tokenization_biogpt import BioGptTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_biogpt import (
		    BIOGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    BioGptForCausalLM,
		    BioGptForSequenceClassification,
		    BioGptForTokenClassification,
		    BioGptModel,
		    BioGptPreTrainedModel,
		)


else:
	import sys

	_lowercase  =			_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)

