Skip to main content

No project description provided

Project description

🚀 dlcalc

PyPI version checks License: MIT

command-line tools for deep learning optimization

InstallationToolsContributing


📋 Overview

dlcalc is a collection of tools for deep learning practitioners, providing calculators and tools for:

  • 🧮 Performance Modeling - Estimate training throughput, memory usage, and MFU
  • 🌐 Topology Analysis - Analyze and optimize network topology for distributed training
  • 📊 Metrics Conversion - Convert between different performance metrics
  • 🔍 Checkpoint Analysis - Inspect and summarize model checkpoints

🔧 Installation

Via pip (recommended)

pip install dlcalc

or

From source

git clone https://github.com/jfc4050/dlcalc
cd dlcalc
pip install -e .

After this you should have access to the command line tools described below. Some people may need to add --user to their pip install command for them to properly go under $PATH.

🛠 Tools

📐 Performance Modeling

3D Training Calculator (3dtrn)

Calculator for estimating performance characteristics of ND parallel transformer training:

3dtrn examples/llama3_70b.yaml

We recommend to use this with profilers like NVIDIA Nsight Systems or PyTorch Profiler to give theoretical grounding to your performance profiling.

🌐 Topology Optimization

Tool Command Purpose
Visualizer topoviz Generate network topology graphs from Kubernetes clusters
Evaluator topoeval Analyze topology optimality for DP rings
Scheduler topoassign Compute topology-aware rank assignments
# Visualize cluster topology
topoviz -h

# Evaluate training job topology
topoeval -h

# Generate optimal rank assignments
topoassign -h

📊 Metrics & KPIs

Samples/Sec → MFU Converter (sps2mfu)

Convert training throughput to Model FLOPs Utilization (MFU):

sps2mfu --samples-per-sec 100 --seqlen 2048 --model-size 70b \
        --n-accelerators 512 --tflops-per-accelerator 312

Samples/Sec → Tokens/Day Converter (sps2tpd)

Calculate daily token throughput:

sps2tpd --samples-per-sec 100 --seqlen 2048

🔍 Utilities

Checkpoint Summarizer (ckpt-summarize)

Analyze PyTorch checkpoint contents:

ckpt-summarize model.pt

🧑‍💻 Development

Setup Development Environment

# Install with development dependencies
pip install -e .[dev]

# Install pre-commit hooks
pre-commit install

Run Quality Checks

# Run all checks (formatting, linting, type checking, tests)
bash checks

Testing

# Run full test suite
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=dlcalc --cov-report=term-missing

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📮 Support


Made with ❤️ for the deep learning community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dlcalc-0.2.0.tar.gz (46.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dlcalc-0.2.0-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file dlcalc-0.2.0.tar.gz.

File metadata

  • Download URL: dlcalc-0.2.0.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dlcalc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0ed599a12458b9217b31b4ccef05dfbc23972a427299961ed60db444fa8dee6e
MD5 95d905ecb6c1d3432cd34af1cdf28243
BLAKE2b-256 761f977635b00cf2ea0ec44037c8e49227a962be4a69f0c1eddf9fe3862b2f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for dlcalc-0.2.0.tar.gz:

Publisher: pypi-publish.yml on jfc4050/dlcalc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dlcalc-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dlcalc-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dlcalc-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e0656fc8f0cd02fab60eaa0cf7733d7ea923d7ded00c769f664a0f9d1f698f5
MD5 e0088beef1c92f1e16ed63529b7f22bb
BLAKE2b-256 eeac53aaaceac645a87b54cc838a92eae6026a7c452bc00bb24f5de4a7803a28

See more details on using hashes here.

Provenance

The following attestation bundles were made for dlcalc-0.2.0-py3-none-any.whl:

Publisher: pypi-publish.yml on jfc4050/dlcalc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page