Open64 es un libre , de código abierto , la optimización del compilador para el Itanium y x86-64 microprocesador arquitecturas. Se deriva de los compiladores SGI para el procesador MIPS R10000 , llamado MIPSPro . Se lanzó inicialmente en 2000 como software GNU GPL con el nombre de Pro64. Al año siguiente, la Universidad de Delaware adoptó el proyecto y cambió el nombre del compilador a Open64. Ahora sirve principalmente como plataforma de investigación para grupos de investigación de compiladores y arquitectura de computadoras . Open64 es compatible con Fortran 77/95 y C / C ++, así como elmodelo de programación de memoria compartida OpenMP . Puede realizar análisis interprocedimiento de alta calidad , análisis de flujo de datos , análisis de dependencia de datos y análisis de región de matriz . El desarrollo ha cesado, aunque otros proyectos pueden utilizar la fuente del proyecto.
Desarrollador (es) | Silicon Graphics , Inc., Instituto de Tecnología Informática, Academia China de Ciencias , Hewlett Packard , Universidad de Delaware |
---|---|
Versión inicial | 2002 |
Lanzamiento final | 5.0 / 10 de noviembre de 2011 |
Sistema operativo | Multiplataforma , Linux |
Tipo | Compilador |
Licencia | Licencia pública general GNU |
Sitio web | sourceforge |
La infraestructura
Sus componentes principales son el frontend para C / C ++ (usando GCC ) y Fortran 77/90 (usando el front-end y las bibliotecas de CraySoft), el análisis interprocedimiento (IPA), el optimizador de nido de bucles (LNO), el optimizador global (WOPT) y generador de código (CG). A pesar de estar escrito inicialmente para una sola arquitectura de computadora, Open64 ha demostrado que puede generar código eficiente para arquitecturas CISC , RISC y VLIW , incluidas MIPS , x86 , IA-64 , ARM y otras.
Representación intermedia
En este compilador se utiliza una representación intermedia jerárquica (IR) con cinco niveles principales para servir como interfaz común entre todos los componentes frontend y backend. Este IR se llama WHIRL.
Versiones
A la versión original de Open64 que se lanzó en 2002 le faltaba su generador de código de canalización de software muy avanzado y solo tenía un generador de código rudimentario para Itanium. El compilador MIPSPro original completo, con este generador de código, está disponible bajo una licencia comercial como compilador Blackbird de Reservoir Labs. El Showdown Paper documenta el generador de código que no se incluyó en Open64. El compilador muy avanzado de Tilera, para su chip TILE64 de 64 núcleos, está basado en Blackbird.
Open64 existe en muchas bifurcaciones , cada una de las cuales tiene diferentes características y limitaciones. La rama "clásica" de Open64 es el Open Research Compiler (ORC), que produce código solo para Itanium (IA-64) y fue financiado por Intel . El esfuerzo de ORC terminó en 2003, y la rama oficial actual (que se originó en el proyecto Intel ORC) es administrada por Hewlett Packard y el Laboratorio de Arquitectura de Computadoras y Sistemas Paralelos de la Universidad de Delaware (CAPSL).
Otras ramas importantes incluyen los compiladores de Tensilica y AMD x86 Open64 Compiler Suite. [1]
Nvidia también está utilizando una bifurcación Open64 para optimizar el código en su cadena de herramientas CUDA . [2]
Open64 se utiliza como backend para los compiladores del sistema operativo HPE NonStop en la plataforma x86-64. [3]
Lanzamientos de Open64
Versión | Fecha de lanzamiento |
---|---|
5,0 | 2011-11-11 |
4.2.4 | 2011-04-12 |
4.2.3 | 2010-04-09 |
4.2.1 | 2008-12-08 |
4.2 | 2008-10-01 |
4.1 | 2007-12-03 |
4.0 | 2007-06-15 |
3.1 | 2007-04-13 |
3,0 | 2006-11-22 |
2.0 | 2006-10-02 |
1.0 | 2006-09-22 |
0,16 | 2007-07-07 |
0,15 | 2002-11-30 |
0,14 | 2002-03-04 |
0,13 | 2002-01-10 |
Lanzamientos AMD x86 Open64
Versión | Fecha de lanzamiento |
---|---|
4.5.2.1 | 2013-03-28 |
4.5.2 | 2012-08-08 |
4.5.1 | 2011-12-19 |
4.2.4 | 2010-06-29 |
4.2.3.2 | 2010-05-17 |
4.2.3.1 | 2010-01-29 |
4.2.3 | 2009-12-11 |
4.2.2.3 | 2009-11-23 |
4.2.2.2 | 2009-08-31 |
4.2.2.1 | 2009-06-03 |
4.2.2 | 2009-04-24 |
Proyectos de desarrollo actuales
Open64 también se utiliza en una serie de proyectos de investigación, como el Unified Parallel C (UPC) y el trabajo especulativo de múltiples subprocesos en varias universidades. El Foro de desarrolladores de Open64 de 2010 describe los proyectos realizados en Absoft , AMD , la Academia de Ciencias de China , la Universidad de Fudan , HP , la Universidad Nacional Tsing Hua , Nvidia , Tensilica , la Universidad de Tsinghua y la Universidad de Houston . [4] La Academia de Ciencias de China portó Open64 a la plataforma Loongson II. [5]
AMD ha ampliado y producido Open64 con optimizaciones diseñadas para los avances del procesador x86 de múltiples núcleos y el desarrollo de código de múltiples subprocesos. [6] AMD admite Open64 como compilador complementario de GCC . [7]
El proyecto OpenUH de la Universidad de Houston, que se basa en Open64, lanzó una nueva versión de su conjunto de compiladores en noviembre de 2015. [8]
Ver también
- Colección del compilador GNU
- Lista de compiladores
- GPGPU
Referencias
- ^ "x86 Open64 Compiler Suite" . AMD . Archivado desde el original el 13 de noviembre de 2013 . Consultado el 12 de noviembre de 2013 .
- ^ Experiencia de NVIDIA con Open64
- ^ "Entrevista de John Reagan sobre LLVM, parte 2" . ecubesystems.com . 2019-05-01 . Consultado el 21 de diciembre de 2020 .
- ^ "2010 Open64 Developers Forum, 25 de agosto de 2010" . Archivado desde el original el 12 de junio de 2010 . Consultado el 6 de septiembre de 2010 .
- ^ Open64 en MIPS: portabilidad y mejora de Open64 para Loongson II
- ^ Nigel Dessau, CMO de AMD (22 de junio de 2009). "Sweet Suite, publicación de blog" . Archivado desde el original el 6 de septiembre de 2010.
- ^ "Página de descarga de AMD Open64" . Archivado desde el original el 13 de marzo de 2013 . Consultado el 13 de noviembre de 2012 .
- ^ Página de descargas de OpenUH
enlaces externos
- Página web oficial
- Página AMD Open64
- El traductor de Berkeley UPC-to-C
- Proyecto OpenUH en la Universidad de Houston