9 repositorios
Tools that analyze and rewrite execution paths to improve processing speed and reduce resource usage.
Explore 9 awesome GitHub repositories matching software engineering & architecture · Computational Graph Optimizers. Refine with filters or upvote what's useful.
Unsloth is a high-performance training and inference platform designed to optimize the lifecycle of large language and multimodal models. It provides a comprehensive engine for fine-tuning, executing, and managing models locally, with a focus on reducing memory consumption and increasing compute speed on consumer-grade hardware. The platform distinguishes itself through hand-optimized kernels and automated computational graph techniques that maximize hardware throughput. It supports advanced training methodologies, including reinforcement learning for reasoning and efficient adapter-based fin
Rewrites execution paths at runtime to minimize latency and improve processing speed for complex multimodal operations.
This project is a machine learning array framework and tensor computation library designed for high-performance numerical computing. It provides a comprehensive suite of tools for constructing and training neural networks, featuring an automatic differentiation engine that facilitates gradient-based optimization and complex mathematical modeling. The library distinguishes itself through a unified memory architecture that allows data to be shared across CPU and GPU devices without explicit copies, significantly reducing data movement overhead. Its execution model relies on a lazy evaluation en
Compiles functions to merge operations and fuse kernels, reducing memory usage and increasing execution speed for complex workflows.
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
Analyzes compute graphs to determine and insert efficient data layouts for optimized hardware performance.
Dask es un framework de computación paralela y un programador de tareas distribuido diseñado para escalar flujos de trabajo de ciencia de datos en Python desde máquinas individuales hasta grandes clústeres. Funciona como un gestor de recursos de clúster que orquesta la lógica computacional representando las tareas y sus dependencias como grafos acíclicos dirigidos. Esta arquitectura permite al sistema automatizar la distribución de cargas de trabajo a través del hardware disponible mientras gestiona requisitos de ejecución complejos. El proyecto se distingue por un motor de evaluación perezosa que difiere las operaciones de datos hasta que se solicitan explícitamente, permitiendo la optimización global del grafo y una asignación eficiente de recursos. Incorpora el volcado de datos consciente de la memoria para evitar fallos del sistema al procesar conjuntos de datos que exceden la memoria disponible, y utiliza la fusión de grafos de tareas para combinar secuencias de operaciones en pasos de ejecución únicos, minimizando la sobrecarga de programación y la comunicación entre nodos. La plataforma proporciona una superficie de capacidades integral para el análisis de datos a gran escala, incluyendo soporte para aprendizaje automático distribuido, integración de computación de alto rendimiento y procesamiento de datos en paralelo. Ofrece herramientas extensas para la gestión del ciclo de vida del clúster, perfilado de rendimiento y monitoreo en tiempo real de la ejecución de tareas. Los usuarios pueden desplegar estos entornos en diversas infraestructuras, incluyendo hardware local, proveedores de nube, sistemas en contenedores y clústeres de computación de alto rendimiento.
Analyzes and restructures task dependencies to improve execution efficiency and minimize redundant data movement.
This project is a comprehensive library for numerical linear algebra and scientific computing, designed to provide optimized routines for matrix decomposition, statistical modeling, and high-performance data analysis. It serves as both a toolkit for solving complex linear systems and an educational resource for understanding the fundamental algorithms behind matrix factorizations and numerical solvers. The library distinguishes itself through a focus on randomized numerical linear algebra, utilizing probabilistic algorithms and approximate methods to perform dimensionality reduction and matri
Accelerates matrix operations through vectorization, parallelization, and just-in-time compilation.
The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++ native code into Android applications. This repository serves as a practical guide for developers utilizing the Android Native Development Kit to implement performance-critical application components that require direct hardware access and low-level system interaction. The project highlights the use of the Java Native Interface to bridge managed code with native modules, enabling cross-language function calls and efficient data exchange. It demonstrates how to manage native act
Performs parallel data processing using advanced instruction sets to increase execution speed in low-level code.
Este proyecto es un recurso educativo integral y un plan de estudios centrado en el diseño e implementación de todo el stack de software y hardware de aprendizaje automático. Sirve como referencia técnica para la arquitectura de sistemas de aprendizaje automático, abarcando desde interfaces de programación de bajo nivel hasta infraestructura de despliegue a gran escala. El proyecto proporciona orientación instructiva sobre varios dominios especializados, incluyendo el desarrollo de compiladores de IA a través de representaciones intermedias y optimizaciones de grafos. Cubre los patrones arquitectónicos necesarios para el entrenamiento distribuido a través de clústeres de GPU y la programación de aceleradores de hardware para optimizar cargas de trabajo en chips especializados. El recurso también detalla la implementación de frameworks de servicio de modelos para entornos de producción y el diseño de pipelines de aprendizaje por refuerzo. Su alcance se extiende a los componentes centrales de los sistemas de ML, como la diferenciación automática, abstracciones de tensores y la orquestación de recursos de GPU.
Analyzes and rewrites execution paths to improve processing speed and reduce resource usage in compute graphs.
oneDNN es una biblioteca de primitivas de aprendizaje profundo y framework de aceleración de hardware diseñado para optimizar las operaciones de redes neuronales. Sirve como un motor de inferencia que acelera el entrenamiento y la ejecución de grafos computacionales utilizando primitivas optimizadas para convoluciones y multiplicaciones de matrices, siguiendo el estándar oneAPI para el rendimiento entre arquitecturas. El proyecto permite el despliegue de IA entre arquitecturas ajustando las cargas de trabajo para microarquitecturas específicas de CPU y GPU de diferentes proveedores de hardware. Se integra con runtimes de hardware y controladores de sistema para compartir contextos de ejecución y memoria entre varios aceleradores. La biblioteca cubre operaciones de matrices de alto rendimiento y aceleración de aprendizaje profundo a través de un sistema de bloques de construcción optimizados. Incluye capacidades para el ajuste del rendimiento de redes neuronales, permitiendo la medición de la utilización de recursos y el tiempo de ejecución para identificar cuellos de botella.
Groups sequential neural network primitives into execution graphs to minimize overhead and improve data locality.
IREE is an MLIR-based compiler toolchain and runtime designed to translate machine learning models from various frameworks into optimized binaries for execution across diverse hardware targets. It provides a unified pipeline to ingest models from PyTorch, TensorFlow, JAX, and ONNX, lowering them into a common intermediate representation for deployment on CPUs, GPUs, and bare-metal embedded systems. The project distinguishes itself through a bytecode virtual machine and a hardware abstraction layer that decouple high-level model logic from specific hardware instruction sets. It supports sophis
Reorganizes operand layouts across a workload to improve memory locality and minimize transformation overhead.