Nvidia интегрировала Universal Sparse Tensor (UST) в обновлённую версию nvmath-python 0.9.0, что значительно улучшает взаимодействие с библиотеками PyTorch, SciPy и CuPy. Основное преимущество заключается в отсутствии затрат на перемещение данных, что упрощает процесс конвертации между различными форматами — от плотных до разреженных (COO, CSR, CSC и другие).
Что нового в nvmath-python
Обновление nvmath-python предлагает разработчикам возможность динамически строить и проверять схемы разреженности. Это достигается за счет использования доменно-специфического языка (DSL), который упрощает описание форматов хранения и позволяет избегать ручного программирования. Устранение необходимости в кодировании новых форматов значительно ускоряет работу, обеспечивая производительность до 444 раз быстрее по сравнению с CuPy и PyTorch в задачах Sparse Matrix-Vector Multiplication (SpMV).
Преимущества Universal Sparse Tensor
Universal Sparse Tensor поддерживает полиморфные операции, что означает, что функции, независимые от разреженности, автоматически используют оптимизированные ядра, избегая дополнительных затрат на программы Just-In-Time (JIT) и LTO. Кроме того, UST permette легко внедрять его преимущества в существующие модели PyTorch без необходимости переписывать весь код, что значительно ускоряет темпы исследований в области разреженных представлений.
Практическое значение для разработчиков
Для разработчиков в России использование Universal Sparse Tensor открывает новые горизонты в глубоких нейросетях, особенно в задачах, требующих работы с большими объемами разреженных данных. Возможность ускорять вычисления и уменьшать время на разработку алгоритмов делает налипанию к моделям Nvidia важным ресурсом для достижения высоких результатов в научных и прикладных исследованиях, а также в коммерческих проектах.
Следующий шаг — расширение функционала UST и активное внедрение в основные исследовательские проекты, что позволит ещё больше упростить процесс работы с разреженными данными в Python.