En informática científica , el BLIS ( software de creación de instancias de bibliotecas similar a BLAS) [2] [3] [4] [5] es un marco de código abierto para implementar un superconjunto de funciones BLAS (subprogramas de álgebra lineal básica) para tipos de procesadores específicos . Expone esa funcionalidad a través de dos interfaces de programación de aplicaciones tradicionales(API): la interfaz BLAS y la interfaz CBLAS. BLIS también incluye dos API nativas del marco: una API con tipo (similar a BLAS) y una API de objeto. Estas interfaces nativas brindan acceso a una funcionalidad similar a BLAS que no es compatible con las operaciones que se encuentran en BLAS (y CBLAS), pero que están estrechamente relacionadas con ellas. El marco se desarrolló con el apoyo de la Ciencia de la Oden grupo de computación de alto rendimiento (CTD) Instituto de Ingeniería Computacional y Ciencias en la Universidad de Texas en Austin .
Autor (es) original (es) | Grupo de Ciencias de la Computación de Alto Rendimiento (SHPC), UT-Austin |
---|---|
Desarrollador (es) | Field Van Zee |
Versión inicial | 9 de noviembre de 2013 |
Lanzamiento estable | 0.8.1 / 22 de marzo de 2021 [1] |
Sistema operativo | Linux Microsoft Windows macOS FreeBSD |
Plataforma | x86-64 ARM ARM64 |
Tipo | Biblioteca de álgebra lineal; implementación de BLAS |
Licencia | Licencia BSD nueva / modificada / de 3 cláusulas |
Sitio web | www |
BLIS ofrece un alto rendimiento en muchas microarquitecturas de CPU actuales en modos de ejecución de subproceso único y multiproceso. [6] BLIS también ofrece un rendimiento competitivo para algunos casos de multiplicación de matrices en los que uno o más operandos de matriz son inusualmente delgados y / o pequeños. [7]
El marco logra un alto rendimiento mediante el empleo de núcleos especializados (generalmente escritos en sintaxis de ensamblaje en línea extendida GNU) junto con el bloqueo de caché y registro a través de operandos matriciales. BLIS también funciona en procesadores para los que aún no se han escrito núcleos personalizados; en esos casos, el marco se basa en implementaciones de kernel portátiles que funcionan a una tasa de cálculo más baja.
BLIS se describe a veces como una refactorización de GotoBLAS 2, que fue creado por Kazushige Goto en el Texas Advanced Computing Center . [8]
Ver también
Referencias
- ^ Lanzamientos · flame / blis - GitHub
- ↑ Van Zee, Field; van de Geijn, Robert (2015). "BLIS: un marco para instanciar rápidamente la funcionalidad BLAS". Transacciones ACM en software matemático . 41 (3): 1–33. doi : 10.1145 / 2764454 .
- ^ Van Zee, Field; Smith, Tyler; Igual, Francisco; Smelyanskiy, Mikhail; Zhang, Xiangyi; Kistler, Michael; Austel, Vernon; Gunnels, John; Bajo, Tze Meng; Marker, Bryan; Killough, Lee; van de Geijn, Robert (2016). "El marco BLIS: experimentos en portabilidad" . Transacciones ACM en software matemático . 42 (2): 1–19. doi : 10.1145 / 2755561 .
- ^ Smith, Tyler M .; Geijn, Robert van de; Smelyanskiy, Mikhail; Hammond, Jeff R .; Van Zee, Field G. (2014). "Anatomía de la multiplicación de matrices de muchos subprocesos de alto rendimiento". 2014 IEEE 28th International Parallel and Distributed Processing Symposium . págs. 1049–1059. doi : 10.1109 / IPDPS.2014.110 . ISBN 978-1-4799-3800-1.
- ^ Bajo, Tze Meng; Igual, Francisco; Smith, Tyler; Quintana, Enrique (2016). "El modelado analítico es suficiente para BLIS de alto rendimiento". Transacciones ACM en software matemático . 43 (2): 1–18. doi : 10.1145 / 2925987 . hdl : 10234/163618 .
- ^ Performance.md , flame / blis en GitHub.
- ^ PerformanceSmall.md , flame / blis en GitHub.
- ^ Goto, Kazushige; Geijn, Robert A. van de (2008). "Anatomía de la multiplicación de matrices de alto rendimiento". Transacciones ACM en software matemático . 34 (3): 1–25. doi : 10.1145 / 1356052.1356053 .
enlaces externos
- Página web oficial