Academic Journal
Rubick: A Unified Infrastructure for Analyzing, Exploring, and Implementing Spatial Architectures via Dataflow Decomposition
| Title: | Rubick: A Unified Infrastructure for Analyzing, Exploring, and Implementing Spatial Architectures via Dataflow Decomposition |
|---|---|
| Authors: | Liqiang Lu, Zizhang Luo, Size Zheng, Jieming Yin, Jason Cong, Yun Liang, Jianwei Yin |
| Source: | IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 43:1177-1190 |
| Publisher Information: | Institute of Electrical and Electronics Engineers (IEEE), 2024. |
| Publication Year: | 2024 |
| Subject Terms: | Parallel computing, Computer Networks and Communications, Latency (audio), 7. Clean energy, Multicore Architectures, 11. Sustainability, Parallel Computing and Performance Optimization, Computer architecture, Embedded system, Design space exploration, Computer network, Performance Optimization, 15. Life on land, Reconfigurable Computing Systems and Design Methods, Computer science, Interconnection, Distributed computing, Programming language, Overhead (engineering), Benchmarking, Networks on Chip in System-on-Chip Design, Hardware and Architecture, Computer Science, Physical Sciences, Reconfigurable Computing, Dataflow, Telecommunications, Dataflow Programming Languages |
| Description: | Les applications tensorielles à croissance rapide exposent d'énormes alternatives de flux de données lorsqu'elles sont mises en œuvre sur des architectures spatiales dotées de grands réseaux PE et de ressources d'interconnexion abondantes. Des travaux antérieurs développent diverses notations et modèles de performance pour les flux de données. Bien que ces notations soient très utiles pour comprendre la réutilisation, la bande passante et les performances des flux de données, elles ne définissent pas l'implémentation matérielle sous-jacente. En raison de l'écart sémantique, l'analyse basée sur ces notations ne peut pas capturer les caractéristiques architecturales détaillées entre les différents flux de données, ce qui conduit à une exploration inefficace de l'espace de conception et à des conceptions sous-optimales. Pour résoudre ces problèmes, nous proposons Rubick, une infrastructure unifiée pour analyser, explorer et mettre en œuvre des architectures spatiales. La principale innovation de Rubick est de décomposer le flux de données en deux représentations intermédiaires de bas niveau : la saisie d'accès et la disposition des données. L'entrée d'accès spécifie comment les données entrent dans les tableaux PE à partir de la mémoire, tandis que la disposition des données spécifie comment les données sont organisées et accédées. Ces deux représentations nous permettent d'inférer les détails de la mise en œuvre matérielle tels que l'interconnexion PE et la structure de la mémoire, qui sont propices à l'analyse structurelle et à l'exploration systématique. Sur la base de cette analyse de décomposition, Rubick offre des opportunités d'optimisation de la micro-architecture et d'exploration efficace de l'espace de conception. Nos expériences démontrent que Rubick peut réduire 82,4 % des ressources de fils avec seulement une augmentation de la latence de 2,7 % en optimisant l'IR d'entrée d'accès, et atteindre une réduction des frais généraux de mémoire de 70,8 % en optimisant l'IR de disposition des données. Rubick accélère également le temps DSE des flux de données jusqu'à 1,1×105X, faisant passer le temps de plusieurs jours à quelques minutes. Le code source de Rubick est disponible publiquement sur (https ://link-omitted-for-blind-review). Las aplicaciones de tensor de rápido crecimiento exponen tremendas alternativas de flujo de datos cuando se implementan en arquitecturas espaciales que cuentan con grandes matrices de PE y abundantes recursos de interconexión. Trabajos anteriores desarrollan varias notaciones y modelos de rendimiento para flujos de datos. Aunque estas notaciones son muy útiles para comprender la reutilización, el ancho de banda y el rendimiento de los flujos de datos, no definen la implementación de hardware subyacente. Debido a la brecha semántica, el análisis basado en estas notaciones no puede capturar las características arquitectónicas detalladas entre diferentes flujos de datos, lo que lleva a una exploración ineficiente del espacio de diseño y a diseños subóptimos. Para abordar estos problemas, proponemos Rubick, una infraestructura unificada para analizar, explorar e implementar arquitecturas espaciales. La principal innovación de Rubick es que descompone el flujo de datos en dos representaciones intermedias de bajo nivel: entrada de acceso y diseño de datos. La entrada de acceso especifica cómo los datos entran en las matrices PE desde la memoria, mientras que el diseño de datos especifica cómo se organizan y se accede a los datos. Estas dos representaciones nos permiten inferir los detalles de la implementación del hardware, como la interconexión PE y la estructura de la memoria, que son susceptibles de análisis estructural y exploración sistemática. Basándose en este análisis de descomposición, Rubick ofrece oportunidades para la optimización de la microarquitectura y la exploración eficiente del espacio de diseño. Nuestros experimentos demuestran que Rubick puede reducir el 82,4% de los recursos de cableado con solo un aumento de latencia del 2,7% al optimizar el IR de entrada de acceso, y lograr una reducción de la sobrecarga de memoria del 70,8% al optimizar el IR de diseño de datos. Rubick también acelera el tiempo DSE de los flujos de datos hasta en 1,1×105X, ahorrando el tiempo de varios días a minutos. El código fuente de Rubick está disponible públicamente en (https://link-omitted-for-blind-review). The fast-growing tensor applications expose tremendous dataflow alternatives when implemented on spatial architectures that feature large PE arrays and abundant interconnection resources. Prior works develop various notations and performance models for dataflows. Though these notations are very useful for understanding the reuse, bandwidth, and performance of dataflows, they do not define the underlying hardware implementation. Due to the semantic gap, analysis based on these notations cannot capture the detailed architectural features between different dataflows, leading to inefficient design space exploration and suboptimal designs. To address these issues, we propose Rubick, a unified infrastructure for analyzing, exploring, and implementing spatial architectures. The main innovation of Rubick is it decomposes the dataflow into two low-level intermediate representations: access entry and data layout. Access entry specifies how data enter into the PE arrays from memory, while data layout specifies how data are arranged and accessed. These two representations allow us to infer the hardware implementation details such as PE interconnection and memory structure, which are amenable for structural analysis and systematic exploration. Based on this decomposition analysis, Rubick provides opportunities for micro-architecture optimization and efficient design space exploration. Our experiments demonstrate that Rubick can reduce 82.4% of wire resources with only a 2.7% latency increase by optimizing access entry IR, and achieve 70.8% memory overhead reduction by optimizing data layout IR. Rubick also accelerates the DSE time of dataflows by up to 1.1×105X, saving the time from several days to minutes. The source code of Rubick is publically available on (https://link-omitted-for-blind-review). تكشف تطبيقات الموتر سريعة النمو عن بدائل هائلة لتدفق البيانات عند تنفيذها على البنى المكانية التي تتميز بمصفوفات البولي إيثيلين الكبيرة وموارد الربط البيني الوفيرة. تضع الأعمال السابقة تدوينات ونماذج أداء مختلفة لتدفقات البيانات. على الرغم من أن هذه الرموز مفيدة جدًا لفهم إعادة الاستخدام وعرض النطاق الترددي وأداء تدفقات البيانات، إلا أنها لا تحدد تنفيذ الأجهزة الأساسية. نظرًا للفجوة الدلالية، لا يمكن للتحليل القائم على هذه الرموز التقاط الميزات المعمارية التفصيلية بين تدفقات البيانات المختلفة، مما يؤدي إلى استكشاف مساحة التصميم غير الفعال والتصاميم دون المستوى الأمثل. لمعالجة هذه القضايا، نقترح روبيك، وهي بنية تحتية موحدة لتحليل واستكشاف وتنفيذ البنى المكانية. الابتكار الرئيسي لروبيك هو أنه يحلل تدفق البيانات إلى تمثيلين متوسطين منخفضي المستوى: إدخال الوصول وتخطيط البيانات. يحدد إدخال الوصول كيفية إدخال البيانات في مصفوفات PE من الذاكرة، بينما يحدد تخطيط البيانات كيفية ترتيب البيانات والوصول إليها. يسمح لنا هذان التمثيلان باستنتاج تفاصيل تنفيذ الأجهزة مثل الترابط بين البولي إيثيلين وهيكل الذاكرة، وهي قابلة للتحليل الهيكلي والاستكشاف المنهجي. بناءً على تحليل التحلل هذا، يوفر روبيك فرصًا لتحسين البنية الدقيقة واستكشاف مساحة التصميم بكفاءة. تُظهر تجاربنا أن روبيك يمكن أن يقلل 82.4 ٪ من موارد الأسلاك مع زيادة زمن الوصول بنسبة 2.7 ٪ فقط من خلال تحسين إدخال الوصول للأشعة تحت الحمراء، وتحقيق تخفيض في الذاكرة بنسبة 70.8 ٪ من خلال تحسين تخطيط البيانات للأشعة تحت الحمراء. يسرع روبيك أيضًا وقت DSE لتدفقات البيانات بما يصل إلى 1.1×105X، مما يوفر الوقت من عدة أيام إلى دقائق. شفرة مصدر روبيك متاحة للجمهور على (https://link-omitted-for-blind-review). |
| Document Type: | Article Other literature type |
| ISSN: | 1937-4151 0278-0070 |
| DOI: | 10.1109/tcad.2023.3337208 |
| DOI: | 10.60692/6mq7b-b6v72 |
| DOI: | 10.60692/dx70g-e4k24 |
| Rights: | CC BY |
| Accession Number: | edsair.doi.dedup.....ef8a0a7b5d95635bab14887e0448f6bb |
| Database: | OpenAIRE |
| ISSN: | 19374151 02780070 |
|---|---|
| DOI: | 10.1109/tcad.2023.3337208 |