Estoy buscando SIMD bibliotecas matemáticas (preferiblemente open source) para la ESS y AVX. Me refiero a que por ejemplo si tengo un AVX registro v con 8 valores de coma flotante quiero el pecado(v) para devolver el pecado de todos los ocho valores a la vez.

AMD tiene un propreitery biblioteca, LibM http://developer.amd.com/tools/cpu-development/libm/ que tiene algunas SIMD funciones matemáticas pero LibM sólo utiliza AVX si detecta FMA4 que Cpu Intel no tiene. También no estoy seguro de que es totalmente usos AVX como todos los nombres de función final en el s4 (d2) y no s8 (d4). Es dar un mejor rendimiento que el estándar de bibliotecas matemáticas en la Cpu Intel pero no es mucho mejor.

Intel tiene la SVML como parte de su compilador de C++, pero el compilador suite es muy caro en Windows. Además, Intel paraliza la biblioteca en la no-Cpu Intel.

He encontrado la siguiente biblioteca de AVX, http://software-lisc.fbk.eu/avx_mathfun/, que soporta un par de funciones matemáticas (exp, log, sin, cos, y sincos). Se da muy rápido los resultados para mí, más rápido que SVML, pero no he comprobado la exactitud. Sólo funciona en un único punto flotante y no funciona en Visual Studio (aunque eso sería fácil de arreglar). Se basa en otro ESS biblioteca.

¿Alguien tiene alguna otra sugerencia?

Edit: he encontrado un hilo que tiene muchas respuestas sobre este tema
Vectorizados funciones Trigonométricas en C?

Aunque es una solución propietaria, Intel Math Kernel library es una Biblioteca bastante completa opción. Sin embargo, funciona mejor en Intel CPUs sólo. Creo que ha sido conocido en el pasado para desviar un unoptimized código de ruta de acceso cuando se ejecuta en un no-procesador Intel. No estoy seguro de si ese es el caso en versiones contemporáneas, sin embargo.
Aquí usted puede conseguir los logaritmos: stackoverflow.com/a/45898937/1915854
Agner Fog, Vector de la Biblioteca de clases es Gpl. Es más de un contenedor de Intel de los elementos intrínsecos de manuales de vectorización más conveniente, pero hay algo de matemática-funciones de la biblioteca como exp y registro.

OriginalEl autor | 2013-03-30

2 Comentarios

  1. 8

    He implementado Vecmathlib https://bitbucket.org/eschnett/vecmathlib/ como un genérico de bibliotecas para otros dos proyectos (El kit de herramientas de Einstein, y pocl http://pocl.sourceforge.net/). Vecmathlib es de código abierto, y está escrito en C++.

    Que parece ser exactamente el tipo de paquete que estoy buscando. Voy a darle una oportunidad y volver a usted.
    Que la biblioteca se ve muy prometedor, pero me encontré con un par de problemas: a) la versión en bitbucket no se compila debido a un #endif están desaparecidos b) los datos de referencia se ve muy decepcionante, generalmente VML es de un orden de magnitud más lento en mis pruebas – aquí MINGW en windws. Y parece que no se puede compilar con MSVC

    OriginalEl autor Erik Schnetter

Dejar respuesta

Please enter your comment!
Please enter your name here