stringtranslate.com

BLIS (software)

En informática científica , BLIS (BLAS-like Library Instantiation Software) [2] [3] [4] [5] es un marco de código abierto para implementar un superconjunto de funcionalidades BLAS (Basic Linear Algebra Subprograms) para tipos de procesadores específicos que recibió el premio JH Wilkinson de software numérico en 2023. [6] Expone esa funcionalidad a través de dos interfaces de programación de aplicaciones (API) tradicionales: la interfaz BLAS y la interfaz CBLAS. BLIS también incluye dos API nativas del marco: una API tipificada (similar a BLAS) y una API de objetos. 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á estrechamente relacionada con ellas. El marco es desarrollado y respaldado por el grupo Science of High-Performance Computing (SHPC) del Instituto Oden de Ingeniería y Ciencias Computacionales de la Universidad de Texas en Austin y el Grupo de Investigación Matthews de la Universidad Metodista del Sur .

BLIS ofrece un alto rendimiento en muchas microarquitecturas de CPU actuales, tanto en modos de ejecución de un solo subproceso como de múltiples subprocesos. [7] 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. [8]

El marco logra un alto rendimiento mediante el uso de núcleos especializados (normalmente escritos en sintaxis de ensamblaje en línea extendida de GNU) junto con bloqueo de caché y registros mediante 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 núcleo portátiles que funcionan a una tasa de computación menor.

A veces se describe a BLIS como una refactorización de GotoBLAS 2, que fue creado por Kazushige Goto en el Centro de Computación Avanzada de Texas . [9]

Véase también

Referencias

  1. ^ Lanzamientos · flame/blis – GitHub
  2. ^ Van Zee, campo; van de Geijn, Robert (2015). "BLIS: un marco para crear rápidamente instancias de la funcionalidad BLAS". Transacciones ACM sobre software matemático . 41 (3): 1–33. doi :10.1145/2764454.
  3. ^ Van Zee, Field; Smith, Tyler; Igual, Francisco; Smelyanskiy, Mikhail; Zhang, Xiangyi; Kistler, Michael; Austel, Vernon; Gunnels, John; Low, Tze Meng; Marker, Bryan; Killough, Lee; van de Geijn, Robert (2016). "El marco BLIS: experimentos en portabilidad". ACM Transactions on Mathematical Software . 42 (2): 1–19. doi : 10.1145/2755561 .
  4. ^ Smith, Tyler M.; van de Geijn, Robert; Smelyanskiy, Mikhail; Hammond, Jeff R.; Van Zee, Field G. (2014). "Anatomía de la multiplicación de matrices de múltiples 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.
  5. ^ Low, Tze Meng; Igual, Francisco; Smith, Tyler; Quintana, Enrique (2016). "El modelado analítico es suficiente para BLIS de alto rendimiento". ACM Transactions on Mathematical Software . 43 (2): 1–18. doi :10.1145/2925987. hdl : 10234/163618 .
  6. ^ Premio James H. Wilkinson de software numérico, SIAM · Premios y reconocimientos · Premios y conferencias importantes.
  7. ^ Performance.md, flame/blis en GitHub.
  8. ^ PerformanceSmall.md, flame/blis en GitHub.
  9. ^ Goto, Kazushige; van de Geijn, Robert A. (2008). "Anatomía de la multiplicación de matrices de alto rendimiento". ACM Transactions on Mathematical Software . 34 (3): 1–25. doi :10.1145/1356052.1356053.

Enlaces externos