-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'pip_package' into 'main'
Add pip package for megatron.core See merge request ADLR/megatron-lm!598
- Loading branch information
Showing
5 changed files
with
136 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Megatron Core is a library for efficient and scalable training of transformer based models. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. | ||
|
||
|
||
MAJOR = 0 | ||
MINOR = 1 | ||
PATCH = 0 | ||
PRE_RELEASE = '' | ||
|
||
# Use the following formatting: (major, minor, patch, pre-release) | ||
VERSION = (MAJOR, MINOR, PATCH, PRE_RELEASE) | ||
|
||
__shortversion__ = '.'.join(map(str, VERSION[:3])) | ||
__version__ = '.'.join(map(str, VERSION[:3])) + ''.join(VERSION[3:]) | ||
|
||
__package_name__ = 'megatron_core' | ||
__contact_names__ = 'NVIDIA' | ||
__contact_emails__ = 'nemo-toolkit@nvidia.com' # use NeMo Email | ||
__homepage__ = 'https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/' # use NeMo homepage | ||
__repository_url__ = 'https://github.com/NVIDIA/Megatron-LM/megatron/core' | ||
__download_url__ = 'https://github.com/NVIDIA/Megatron-LM/releases' | ||
__description__ = 'Megatron Core - a library for efficient and scalable training of transformer based models' | ||
__license__ = 'BSD-3' | ||
__keywords__ = 'deep learning, machine learning, gpu, NLP, NLU, language, transformer, nvidia, pytorch, torch' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
torch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,111 @@ | ||
from setuptools import setup, find_packages | ||
|
||
setup( | ||
name="megatron.core", | ||
version="0.1", | ||
description="Core components of Megatron.", | ||
packages=find_packages( | ||
include=("megatron.core") | ||
) | ||
) | ||
"""Setup for pip package.""" | ||
|
||
import importlib.util | ||
import os | ||
import setuptools | ||
|
||
spec = importlib.util.spec_from_file_location('package_info', 'megatron/core/package_info.py') | ||
package_info = importlib.util.module_from_spec(spec) | ||
spec.loader.exec_module(package_info) | ||
|
||
|
||
__contact_emails__ = package_info.__contact_emails__ | ||
__contact_names__ = package_info.__contact_names__ | ||
__description__ = package_info.__description__ | ||
__download_url__ = package_info.__download_url__ | ||
__homepage__ = package_info.__homepage__ | ||
__keywords__ = package_info.__keywords__ | ||
__license__ = package_info.__license__ | ||
__package_name__ = package_info.__package_name__ | ||
__repository_url__ = package_info.__repository_url__ | ||
__version__ = package_info.__version__ | ||
|
||
|
||
if os.path.exists('megatron/core/README.md'): | ||
with open("megatron/core/README.md", "r", encoding='utf-8') as fh: | ||
long_description = fh.read() | ||
long_description_content_type = "text/markdown" | ||
|
||
else: | ||
long_description = 'See ' + __homepage__ | ||
long_description_content_type = "text/plain" | ||
|
||
|
||
############################################################################### | ||
# Dependency Loading # | ||
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # | ||
|
||
def req_file(filename, folder="megatron/core"): | ||
with open(os.path.join(folder, filename), encoding='utf-8') as f: | ||
content = f.readlines() | ||
# you may also want to remove whitespace characters | ||
# Example: `\n` at the end of each line | ||
return [x.strip() for x in content] | ||
|
||
install_requires = req_file("requirements.txt") | ||
|
||
############################################################################### | ||
|
||
setuptools.setup( | ||
name=__package_name__, | ||
# Versions should comply with PEP440. For a discussion on single-sourcing | ||
# the version across setup.py and the project code, see | ||
# https://packaging.python.org/en/latest/single_source_version.html | ||
version=__version__, | ||
description=__description__, | ||
long_description=long_description, | ||
long_description_content_type=long_description_content_type, | ||
# The project's main homepage. | ||
url=__repository_url__, | ||
download_url=__download_url__, | ||
# Author details | ||
author=__contact_names__, | ||
author_email=__contact_emails__, | ||
# maintainer Details | ||
maintainer=__contact_names__, | ||
maintainer_email=__contact_emails__, | ||
# The licence under which the project is released | ||
license=__license__, | ||
classifiers=[ | ||
# How mature is this project? Common values are | ||
# 1 - Planning | ||
# 2 - Pre-Alpha | ||
# 3 - Alpha | ||
# 4 - Beta | ||
# 5 - Production/Stable | ||
# 6 - Mature | ||
# 7 - Inactive | ||
'Development Status :: 5 - Production/Stable', | ||
# Indicate who your project is intended for | ||
'Intended Audience :: Developers', | ||
'Intended Audience :: Science/Research', | ||
'Intended Audience :: Information Technology', | ||
# Indicate what your project relates to | ||
'Topic :: Scientific/Engineering', | ||
'Topic :: Scientific/Engineering :: Mathematics', | ||
'Topic :: Scientific/Engineering :: Image Recognition', | ||
'Topic :: Scientific/Engineering :: Artificial Intelligence', | ||
'Topic :: Software Development :: Libraries', | ||
'Topic :: Software Development :: Libraries :: Python Modules', | ||
'Topic :: Utilities', | ||
# Pick your license as you wish (should match "license" above) | ||
'License :: OSI Approved :: BSD License', | ||
# Supported python versions | ||
'Programming Language :: Python :: 3', | ||
'Programming Language :: Python :: 3.8', | ||
'Programming Language :: Python :: 3.9', | ||
# Additional Setting | ||
'Environment :: Console', | ||
'Natural Language :: English', | ||
'Operating System :: OS Independent', | ||
], | ||
packages=['megatron.core', 'megatron.core.pipeline_parallel', 'megatron.core.tensor_parallel'], | ||
install_requires=install_requires, | ||
|
||
# Add in any packaged data. | ||
include_package_data=True, | ||
# PyPI package information. | ||
keywords=__keywords__, | ||
) |