Hardware-Beschleunigung

A Kryptografischer Beschleuniger Mit der Karte können kryptografische Operationen schneller ausgeführt werden.

Hardware-Beschleunigung ist die Verwendung von Computerhardware entwickelt, um bestimmte Funktionen effizienter auszuführen als im Vergleich zu Software Laufen auf einem allgemeinen Zweck Zentrale Verarbeitungseinheit (ZENTRALPROZESSOR). Irgendein Transformation von Daten Dies kann in Software berechnet werden, die auf einer generischen CPU ausgeführt wird, kann auch in maßgefertigter Hardware oder in einer Mischung aus beiden berechnet werden.

Um Computeraufgaben schneller (oder in irgendeiner anderen Weise besser) auszuführen, kann man in der Regel Zeit und Geld in die Verbesserung der Software, die Verbesserung der Hardware oder beides investieren. Es gibt verschiedene Ansätze mit Vor- und Nachteilen in Bezug auf verringerte Latenz, erhöht Durchsatz und reduziert Energieverbrauch. Typische Vorteile der Fokussierung auf Software können schneller sein Entwicklung, niedriger Einmalentwicklung Kosten, erhöht Portabilitätund leichte Aktualisieren von Funktionen oder Patching Käfer, auf Kosten von Überkopf allgemeine Operationen berechnen. Vorteile der Konzentration auf Hardware können umfassen beschleunigen, reduziert Energieverbrauch,[1] niedrigere Latenz, erhöht Parallelität[2] und Bandbreite, und bessere Nutzung von Gebiet und Funktionale Komponenten erhältlich auf einem Integrierter Schaltkreis; Auf Kosten einer geringeren Fähigkeit, Designs einmal zu aktualisieren auf Silizium geätzt und höhere Kosten von Funktionale Überprüfungund Zeiten zum Markt. In der Hierarchie digitaler Computersysteme, die von allgemeinen Verarbeitern bis hin zu reichen vollständig angepasst Hardware gibt es einen Kompromiss zwischen Flexibilität und Effizienz, wobei die Effizienz um zunimmt Größenordnungen Wenn eine bestimmte Anwendung höher implementiert wird, diese Hierarchie.[3][4] Diese Hierarchie umfasst allgemeine Prozessoren wie CPUs.[5] spezialisiertere Prozessoren wie z. GPUS,[6] Funktionsfunktion implementiert auf Feldprogrammierbare Gate-Arrays (Fpgas),[7] und festgelegtes implementiert auf Anwendungsspezifische integrierte Schaltkreise (Asics).[8]

Hardwarebeschleunigung ist vorteilhaft für Leistungund praktisch, wenn die Funktionen festgelegt werden, sodass Aktualisierungen nicht wie in Softwarelösungen erforderlich sind. Mit dem Aufkommen von reprogrammierbar Logikgeräte FPGAs wie FPGA Steuerfluss.[9][10] Der Nachteil ist jedoch, dass in vielen Open -Source -Projekten proprietäre Bibliotheken erforderlich sind, die nicht alle Anbieter verteilen oder aufdecken möchten, was es schwierig macht, in solche Projekte zu integrieren.

Überblick

Integrierte Schaltungen können erstellt werden, um beliebige Operationen auszuführen Analog und Digital Signale. Am häufigsten sind Signale digital und können als interpretiert werden als binäre Zahl Daten. Computerhardware und Software arbeiten mit Informationen in der Binärdarstellung zur Durchführung Computer; Dies wird durch Berechnung erreicht Boolesche Funktionen auf der Bits der Eingabe und Ausgabe des Ergebnisses zu einigen Ausgabegerät nachgeschaltet für Lagerung oder weitere Bearbeitung.

Computeräquivalenz von Hardware und Software

Weil alles Turing -Maschinen kann jeden ausführen berechnungsbare FunktionEs ist immer möglich, benutzerdefinierte Hardware zu entwerfen, die dieselbe Funktion wie eine bestimmte Software ausführt. Umgekehrt kann Software immer verwendet werden, um die Funktion eines bestimmten Hardware -Stücks zu emulieren. Benutzerdefinierte Hardware bietet möglicherweise eine höhere Leistung pro Watt für dieselben Funktionen, die in der Software angegeben werden können. Hardware -Beschreibung Sprachen (HDLs) wie z. Verilog und VHDL kann das gleiche modellieren Semantik als Software und synthetisieren das Design in a Netzliste das kann an eine FPGA programmiert oder in die komponiert werden Logik -Tore eines Asic.

Computerspeicherprogramme

Die überwiegende Mehrheit des Software-basierten Computers erfolgt auf Maschinen, die die implementieren Von Neumann Architekturkollektiv als bekannt als Computerspeicherprogramme. Computerprogramme werden als Daten gespeichert und hingerichtet durch Prozessoren. Solche Prozessoren müssen sowohl Anweisungen abrufen und dekodieren Laden von Datenoperanden aus Erinnerung (Im Rahmen des Anweisungszyklus) Um die Anweisungen auszuführen, die das Softwareprogramm ausmachen. Sich auf eine gemeinsame Stütze verlassen Zwischenspeicher Für Code und Daten führt zu dem "von Neumann Engpass", einer grundlegenden Einschränkung des Durchsatzes von Software für Prozessoren, die die von Neumann -Architektur implementieren. Auch in der Modifizierte Harvard -Architektur, wo Anweisungen und Daten separate Caches in der SpeicherhierarchieEs gibt Overhead zu Decodierungsanweisungen Opcodes und Multiplexing verfügbar Ausführungseinheiten auf einen Mikroprozessor oder Mikrocontroller, was zu Nutzungsauslastung führt. Moderne Prozessoren, die zur Verfügung stellen Simultanes Multithreading Unterausnutzung der verfügbaren Prozessorfunktionseinheiten ausnutzen und Unterrichtsniveau Parallelität zwischen verschiedenen Hardware -Threads.

Hardware -Ausführungseinheiten

Hardware -Ausführungseinheiten sind im Allgemeinen nicht auf die von Neumann oder modifizierten Harvard -Architekturen angewiesen und müssen nicht die Anweisungen abrufen und dekodieren Schritte eines Anweisungszyklus und entstehen diesen Stufen. Bei Bedarf werden Berechnungen in a angegeben Übertragungsstufe Register (RTL) Hardwaredesign, Zeit- und Schaltungskosten, die durch Anweisungen abrufen und Decodierungsstufen entstehen, können zurückgefordert und an andere Verwendungen eingesetzt werden.

Diese Rückgewinnung spart Zeit, Strom und Schaltkreis in der Berechnung. Die zurückgewonnenen Ressourcen können für eine erhöhte parallele Berechnung, andere Funktionen, Kommunikation oder Speicher sowie für erhöhte Erhöhungen verwendet werden Input-Output Fähigkeiten. Dies kommt auf Kosten des allgemeinen Nutzens.

Aufstrebende Hardware -Architekturen

Eine größere RTL -Anpassung von Hardwaredesigns ermöglicht aufkommende Architekturen wie z. In-Memory Computing, Transport ausgelöste Architekturen (Tta) und Netzwerke-On-Chip (NOC) Um weiter von erhöhten zu profitieren Lokalität von Daten zum Ausführungskontext, wodurch die Berechnung und Kommunikationslatenz zwischen Modulen und Funktionseinheiten verringert wird.

Benutzerdefinierte Hardware ist nur durch den Bereich und im Bereich paralleler Verarbeitungsfähigkeit begrenzt Logikblöcke erhältlich auf der Integrierter Schaltkreis sterben.[11] Daher ist Hardware viel kostenloser zu bieten massive Parallelität als Software für allgemeine Verfahren, die die Möglichkeit der Implementierung der Implementierung der Parallele Zufallszugriffsmaschine (PRAM) Modell.

Es ist üblich zu bauen Multicore und Manycore Verarbeitungseinheiten aus Mikroprozessor -IP -Kernschemata auf einer einzelnen FPGA oder ASIC.[12][13][14][15][16] In ähnlicher Weise können spezielle funktionelle Einheiten parallel als komponiert werden In der digitalen Signalverarbeitung ohne in einen Prozessor eingebettet zu sein IP -Kern. Daher wird Hardware -Beschleunigung häufig für wiederholte, feste Aufgaben mit wenig eingesetzt Bedingte Verzweigunginsbesondere bei großen Datenmengen. Das ist wie Nvidia's CUDA GPU -Linie werden implementiert.

Implementierungsmetriken

Mit zunehmender Mobilität der Geräte wurden neue Metriken entwickelt, die die relative Leistung spezifischer Beschleunigungsprotokolle messen, unter Berücksichtigung der Eigenschaften wie physikalischen Hardwareabmessungen, Stromverbrauch und Betriebsdurchsatz. Diese können in drei Kategorien zusammengefasst werden: Aufgabeneffizienz, Implementierungseffizienz und Flexibilität. Angemessene Metriken betrachten den Bereich der Hardware zusammen mit dem entsprechenden Betriebsdurchsatz und der verbrauchten Energie.[17]

Anwendungen

Beispiele für die Beschleunigung der Hardware umfassen Bit Blit Beschleunigungsfunktionalität in Grafikverarbeitungseinheiten (GPUs), Verwendung von Memristoren zum Beschleunigen Neuronale Netze und regulären Ausdruck Hardwarebeschleunigung für Spamkontrolle in dem Server Industrie, die verhindern soll Regelmäßige Ausdrucksverleugnung des Dienstes (Redos) Angriffe.[18] Die Hardware, die die Beschleunigung ausführt Kryptografischer Beschleuniger.

Traditionell waren die Prozessoren sequentiell (Anweisungen werden nacheinander ausgeführt) und wurden so konzipiert, dass Allzweckalgorithmen von gesteuert werden, die von gesteuert werden Anweisungen abrufen (Zum Beispiel bewegene temporäre Ergebnisse zu und von a Datei registrieren). Hardwarebeschleuniger verbessern die Ausführung eines bestimmten Algorithmus, indem Sie größere zulassen Parallelität, mit spezifisch Datapaths für ihre Temporäre Variablenund Reduzierung des Overhead der Befehlskontrolle im Fetch-Decode-Execute-Zyklus.

Moderne Prozessoren sind Multi-Core und enthalten häufig parallele "Einzelinstruktion; mehrere Daten" (Simd) Einheiten. Trotzdem bietet die Beschleunigung der Hardware immer noch Vorteile. Die Hardwarebeschleunigung eignet sich für jeden berechnungsintensiven Algorithmus, der häufig in einer Aufgabe oder einem Programm ausgeführt wird. Abhängig von der Granularität kann die Beschleunigung der Hardware von einer kleinen funktionellen Einheit zu einem großen funktionellen Block (wie wie Bewegungsschätzung in MPEG-2).

Hardware -Beschleunigungseinheiten nach Anwendung

Anwendung Hardware -Beschleuniger Akronym
Computergrafik Grafikkarte GPU
  • Gpgpu
  • CUDA
  • RTX
Digitale Signalverarbeitung Digitaler Signalprozessor DSP
Analoge Signalverarbeitung Feldprogrammierbar analoges Array FPAA
  • FPRF
Schallverarbeitung Soundkarte und Soundkartenmixer N / A
Computernetzwerk Netzwerkprozessor und Netzwerkschnittstellencontroller NPU und Nic
  • NOC
  • Tcpoe oder toe
  • I/Hafer oder Ioat
Kryptographie Kryptografischer Beschleuniger und sichern Sie den Kryptoprozessor N / A
Künstliche Intelligenz KI -Beschleuniger N / A
  • VPU
  • Pnn
  • N / A
Multilineare Algebra Tensor -Verarbeitungseinheit TPU
Physiksimulation Physik -Verarbeitungseinheit PPU
Reguläre Ausdrücke[18] Regelmäßiger Expression Coprozessor N / A
Datenkompression[19] Datenkomprimierungsbeschleuniger N / A
In-Memory-Verarbeitung Netzwerk auf einem Chip und Systolisches Array NOC; N / A
Datenverarbeitung Datenverarbeitungseinheit DPU
Jede Computeraufgabe Computerhardware HW (manchmal)
  • FPGA
  • Asic
  • CPLD
  • SOC
    • Mpsoc
    • PSOC

Siehe auch

Verweise

  1. ^ "Microsoft Supercarges Bing -Suche mit programmierbaren Chips". VERDRAHTET. 16. Juni 2014.
  2. ^ "Eingebettet". Archiviert von das Original Am 2007-10-08. Abgerufen 2012-08-18. "FPGA -Architekturen von 'a' bis 'z'" von Clive Maxfield 2006
  3. ^ "Mining -Hardware -Vergleich - Bitcoin". Abgerufen 17. Juli 2014.
  4. ^ "Nicht spezialisierter Hardwarevergleich - Bitcoin". Abgerufen 25. Februar 2014.
  5. ^ Kim, Yeongmin; Kong, Joonho; Munir, Arslan (2020). "CPU-Akkelierer für die CNN-Beschleunigung am Rande der CNN-Beschleunigung". IEEE -Zugang. 8: 211422–211433. doi:10.1109/access.2020.3039278. ISSN 2169-3536.
  6. ^ Lin, Yibo; Jiang, Zixuan; Gu, Jiaqi; Li, Wuxi; Dhar, Shounak; Ren, Haoxing; Khailany, Brucek; Pan, David Z. (April 2021). "Dreamplace: Deep Learning Toolkit-fähiges GPU-Beschleunigung für die moderne VLSI-Platzierung". IEEE-Transaktionen zum computergestützten Design integrierter Schaltkreise und Systeme. 40 (4): 748–761. doi:10.1109/tcad.2020.3003843. ISSN 1937-4151. S2CID 225744481.
  7. ^ Lyakhov, Pavel; Valueva, Maria; Valuev, Georgii; Nagornov, Nikolai (2020-12-18). "Eine Methode zur Erhöhung der digitalen Filterleistung basierend auf verkürzten Multiplikations-Akkumulationseinheiten". Angewandte Wissenschaften. 10 (24): 9052. doi:10.3390/app10249052. ISSN 2076-3417. Die Hardwaresimulation auf FPGA erhöhte die digitale Filterleistung.
  8. ^ Mohan, Prashanth; Wang, wen; Jungk, Bernhard; Niederhagen, Ruben; Szefer, Jakub; Mai, Ken (Oktober 2020). "ASIC Accelerator in 28 nm für das digitale Signaturschema post-quantum" XMSSS ". 2020 IEEE 38. Internationale Konferenz zum Computer Design (ICCD). Hartford, CT, USA: IEEE: 656–662. doi:10.1109/ICCD50377.2020.00112. ISBN 978-1-7281-9710-4. S2CID 229330964.
  9. ^ Morgan, Timothy Pricket (2014-09-03). "Wie Microsoft FPGAs verwendet, um die Bing -Suche zu beschleunigen". Enterprise Tech. Abgerufen 2018-09-18.
  10. ^ "Projektkatapult". Microsoft Research.
  11. ^ MICROBLAZE Weichprozessor: Häufig gestellte Fragen Archiviert 2011-10-27 bei der Wayback -Maschine
  12. ^ István vassányi. "Implementierung von Prozessorarrays auf FPGAs". 1998
  13. ^ Zhoukun Wang und Omar Hammami. "Ein 24 -Prozessoren -System auf Chip FPGA -Design mit Netzwerk auf Chip". [1]
  14. ^ John Kent. "Micro16 -Array - Ein einfaches CPU -Array"
  15. ^ Kit Eaton. "1.000 Kern -CPU erreicht: Ihr zukünftiger Desktop wird ein Supercomputer sein". 2011. [2]
  16. ^ "Wissenschaftler drücken über 1.000 Kerne auf einen Chip". 2011. [3] Archiviert 2012-03-05 in der Wayback -Maschine
  17. ^ Kienle, Frank; Wehn, Norbert; Meyr, Heinrich (Dezember 2011). "Über Komplexitäts-, Energie- und Implementierungseffizienz von Kanaldeodern". IEEE -Transaktionen zur Kommunikation. 59 (12): 3301–3310. Arxiv:1003.3792. doi:10.1109/tcomm.2011.092011.100157. ISSN 0090-6778. S2CID 13863870.
  18. ^ a b "Regelmäßige Ausdrücke in Hardware". Abgerufen 17. Juli 2014.
  19. ^ "Komprimierungsbeschleuniger - Microsoft Research". Microsoft Research. Abgerufen 2017-10-07.
  20. ^ a b Farabet, Clément et al. "Hardware beschleunigte Faltungsnetzwerke für synthetische Sehsysteme[Dead Link]. "Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on. IEEE, 2010.

Externe Links

  • Medien im Zusammenhang mit der Hardwarebeschleunigung bei Wikimedia Commons