2008-12-26 13 views
5

Actualmente estoy aprendiendo las API relacionadas con las bibliotecas de paralelización de Intel, como TBB, MKL e IPP. Me preguntaba, sin embargo, si también vale la pena mirar la parte del rompecabezas de AMD. ¿O eso sería una pérdida de tiempo? (Debo confesar, no tengo ninguna pista sobre el soporte de biblioteca de AMD - en absoluto - por lo que agradecería cualquier consejo que pueda tener.)¿Vale la pena aprender las API específicas de AMD?

Solo para aclarar, la razón por la que estoy en el camino de Intel es porque 1) las API están muy bien; y 2) Intel parece tomar el soporte de herramientas tan en serio como el soporte API. (Una vez más, tengo sin pista cómo lo está haciendo AMD en este departamento)

Respuesta

9

Las bibliotecas MKL e IPP funcionarán (casi) también en las máquinas AMD. Supongo que TBB también funcionará bien en las cajas de AMD. Si tuviera que sugerir una tecnología que sería beneficiosa y útil para ambos, sería dominar las bibliotecas OpenMP. El compilador de Intel con las extensiones OpenMP es increíblemente rápido y también funciona con chips AMD.

3

Si su empresa vende paquetes de solo servidores Intel con su software, entonces no debe molestarse en aprender el enfoque de AMD. Pero si va a tener que ofrecer software para ambas (o muchas) plataformas diferentes, entonces valdría la pena investigar las diferentes tecnologías. Será muy difícil crear los contenedores para las bibliotecas específicas del hardware. (Especialmente desde el enhebrado.)

Y definitivamente no desea escribir una implementación completamente separada para cada configuración de hardware. De hecho, si su software va a ser consumido por un usuario genérico, es posible que desee abandonar la tecnología Intel y utilizar técnicas de subprocesamiento estándar. No pretendo ser desalentador, pero creo que las bibliotecas de threading de Intel están un poco adelantadas a su tiempo para todos los intentos y propósitos.

+0

¿Están adelantados a su tiempo para todos los efectos, o solo para fines intensivos? ¿Qué es un propósito intensivo de todos modos? – Karl

+1

Obteniendo su B.S. en C.S. para obtener un trabajo de programación de computadoras es una "intención y propósito". Obteniendo tu Ph.D. en C.S. para hacer lo mismo es un "propósito intensivo". ;-) – Kevin

+0

jaja, eso es lo que obtengo por escribir más rápido de lo que puedo pensar. Ok, corrigió el fraseo. – Marcin

7

Solo vale la pena si usted está específicamente interesado en construir algo así como videojuegos, sistemas operativos, servidores de bases de datos o software de virtualización. En otras palabras: si tiene un segmento donde le importa lo suficiente sobre el rendimiento para tomarse el tiempo de hacerlo (y hacerlo bien) en el ensamblador. Lo mismo es cierto para Intel.

+0

Correcto, si el rendimiento es un factor importante, y el hardware está especializado. – Marcin