Movatterモバイル変換


[0]ホーム

URL:


Wikipedia

Hardware acceleration

(Redirected fromHardware accelerator)
For hardware accelerators in startup companies, seeSeed accelerator.
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Hardware acceleration" – news ·newspapers ·books ·scholar ·JSTOR
(September 2014) (Learn how and when to remove this message)

Hardware acceleration is the use ofcomputer hardware designed to perform specific functions more efficiently when compared tosoftware running on a general-purposecentral processing unit (CPU). Anytransformation ofdata that can be calculated in software running on a generic CPU can also be calculated in custom-made hardware, or in some mix of both.

Acryptographic accelerator card allows cryptographic operations to be performed at a faster rate.

To perform computing tasks more efficiently, generally one can invest time and money in improving the software, improving the hardware, or both. There are various approaches with advantages and disadvantages in terms of decreasedlatency, increasedthroughput, and reducedenergy consumption. Typical advantages of focusing on software may include greater versatility, more rapiddevelopment, lowernon-recurring engineering costs, heightenedportability, and ease ofupdating features orpatchingbugs, at the cost ofoverhead to compute general operations. Advantages of focusing on hardware may includespeedup, reducedpower consumption,[1] lower latency, increasedparallelism[2] andbandwidth, andbetter utilization of area andfunctional components available on anintegrated circuit; at the cost of lower ability to update designs onceetched onto silicon and higher costs offunctional verification, times to market, and the need for more parts. In the hierarchy of digital computing systems ranging from general-purpose processors tofully customized hardware, there is a tradeoff between flexibility and efficiency, with efficiency increasing byorders of magnitude when any given application is implemented higher up that hierarchy.[3] This hierarchy includes general-purpose processors such as CPUs,[4] more specialized processors such as programmableshaders in aGPU,[5] applications implemented onfield-programmable gate arrays (FPGAs),[6] and fixed-function implemented onapplication-specific integrated circuits (ASICs).[7]

Hardware acceleration is advantageous forperformance, and practical when the functions are fixed, so updates are not as needed as in software solutions. With the advent ofreprogrammablelogic devices such as FPGAs, the restriction of hardware acceleration to fully fixed algorithms has eased since 2010, allowing hardware acceleration to be applied to problem domains requiring modification to algorithms and processingcontrol flow.[8][9] The disadvantage, however, is that in many open source projects, it requires proprietary libraries that not all vendors are keen to distribute or expose, making it difficult to integrate in such projects.

Overview

edit

Integrated circuits are designed to handle various operations on both analog and digital signals. In computing, digital signals are the most common and are typically represented as binary numbers.Computer hardware and software use thisbinary representation to perform computations. This is done by processingBoolean functions on the binary input, and then outputting the results for storage or further processing by other devices.

Computational equivalence of hardware and software

edit

Because allTuring machines can run anycomputable function, it is always possible to design custom hardware that performs the same function as a given piece of software. Conversely, software can always be used to emulate the function of a given piece of hardware. Custom hardware may offer higher performance per watt for the same functions that can be specified in software.Hardware description languages (HDLs) such asVerilog andVHDL can model the samesemantics as software andsynthesize the design into anetlist that can be programmed to an FPGA or composed into thelogic gates of an ASIC.

Stored-program computers

edit

The vast majority of software-based computing occurs on machines implementing thevon Neumann architecture, collectively known asstored-program computers.Computer programs are stored as data andexecuted byprocessors. Such processors must fetch and decode instructions, as well asload data operands frommemory (as part of theinstruction cycle), to execute the instructions constituting the software program. Relying on a commoncache for code and data leads to the "von Neumann bottleneck", a fundamental limitation on the throughput of software on processors implementing the von Neumann architecture. Even in themodified Harvard architecture, where instructions and data have separate caches in thememory hierarchy, there is overhead to decoding instructionopcodes andmultiplexing availableexecution units on amicroprocessor ormicrocontroller, leading to low circuit utilization. Modern processors that providesimultaneous multithreading exploit under-utilization of available processor functional units andinstruction level parallelism between different hardware threads.

Hardware execution units

edit

Hardware execution units do not in general rely on the von Neumann or modified Harvard architectures and do not need to perform the instruction fetch and decode steps of aninstruction cycle and incur those stages' overhead. If needed calculations are specified in aregister transfer level (RTL) hardware design, the time and circuit area costs that would be incurred by instruction fetch and decoding stages can be reclaimed and put to other uses.

This reclamation saves time, power, and circuit area in computation. The reclaimed resources can be used for increased parallel computation, other functions, communication, or memory, as well as increasedinput/output capabilities. This comes at the cost of general-purpose utility.

Emerging hardware architectures

edit

Greater RTL customization of hardware designs allows emerging architectures such asin-memory computing,transport triggered architectures (TTA) andnetworks-on-chip (NoC) to further benefit from increasedlocality of data to execution context, thereby reducing computing and communication latency between modules and functional units.

Custom hardware is limited in parallel processing capability only by the area andlogic blocks available on theintegrated circuit die.[10] Therefore, hardware is much more free to offermassive parallelism than software on general-purpose processors, offering a possibility of implementing theparallel random-access machine (PRAM) model.

It is common to buildmulticore andmanycore processing units out ofmicroprocessor IP core schematics on a single FPGA or ASIC.[11][12][13][14][15] Similarly, specialized functional units can be composed in parallel, asin digital signal processing, without being embedded in a processorIP core. Therefore, hardware acceleration is often employed for repetitive, fixed tasks involving littleconditional branching, especially on large amounts of data. This is howNvidia'sCUDA line of GPUs are implemented.

Implementation metrics

edit

As device mobility has increased, new metrics have been developed that measure the relative performance of specific acceleration protocols, considering characteristics such as physical hardware dimensions, power consumption, and operations throughput. These can be summarized into three categories: task efficiency, implementation efficiency, and flexibility. Appropriate metrics consider the area of the hardware along with both the corresponding operations throughput and energy consumed.[16]

Applications

edit

Examples of hardware acceleration includebit blit acceleration functionality in graphics processing units (GPUs), use ofmemristors for acceleratingneural networks, andregular expression hardware acceleration forspam control in theserver industry, intended to preventregular expression denial of service (ReDoS) attacks.[17] The hardware that performs the acceleration may be part of a general-purpose CPU, or a separate unit called a hardware accelerator, though they are usually referred to with a more specific term, such as 3D accelerator, orcryptographic accelerator.

Traditionally, processors were sequential (instructions are executed one by one), and were designed to run general purpose algorithms controlled byinstruction fetch (for example, moving temporary resultsto and from aregister file). Hardware accelerators improve the execution of a specific algorithm by allowing greaterconcurrency, having specificdatapaths for theirtemporary variables, and reducing the overhead of instruction control in the fetch-decode-execute cycle.

Modern processors aremulti-core and often feature parallel "single-instruction; multiple data" (SIMD) units. Even so, hardware acceleration still yields benefits. Hardware acceleration is suitable for any computation-intensive algorithm which is executed frequently in a task or program. Depending upon the granularity, hardware acceleration can vary from a small functional unit, to a large functional block (likemotion estimation inMPEG-2).

Hardware acceleration units by application

edit
ApplicationHardware acceleratorAcronym
Computer graphicsGraphics processing unitGPU
  • GPGPU
  • CUDA
  • RTX
  • N/A
Digital signal processingDigital signal processorDSP
Analog signal processingField-programmable analog arrayFPAA
  • FPRF
Image processingWebcam orimage processorIPU
Sound processingSound card andsound card mixerN/A
Computer networkingNetwork processor andnetwork interface controllerNPU and NIC
  • NoC
  • TCPOE or TOE
  • I/OAT or IOAT
CryptographyCryptographic accelerator andsecure cryptoprocessorN/A
Artificial intelligenceAI acceleratorN/A
  • VPU
  • PNN
  • N/A
Multilinear algebraTensor processing unitTPU
Physics simulationPhysics processing unitPPU
Regular expressions[17]Regular expression coprocessorN/A
Data compression[19]Data compression acceleratorN/A
In-memory processingNetwork on a chip andSystolic arrayNoC; N/A
Data processingData processing unitDPU
Any computing taskComputer hardwareHW (sometimes)
  • FPGA
  • ASIC
  • CPLD
  • SoC
    • MPSoC
    • PSoC

See also

edit

References

edit
  1. ^"Microsoft Supercharges Bing Search With Programmable Chips".WIRED. 16 June 2014.
  2. ^"Embedded". Archived fromthe original on 2007-10-08. Retrieved2012-08-18. "FPGA Architectures from 'A' to 'Z'" by Clive Maxfield 2006
  3. ^Sinan, Kufeoglu; Mahmut, Ozkuran (2019)."Figure 5. CPU, GPU, FPGA, and ASIC minimum energy consumption between difficulty recalculation.".Energy Consumption of Bitcoin Mining.doi:10.17863/CAM.41230.
  4. ^Kim, Yeongmin; Kong, Joonho; Munir, Arslan (2020)."CPU-Accelerator Co-Scheduling for CNN Acceleration at the Edge".IEEE Access.8:211422–211433.Bibcode:2020IEEEA...8u1422K.doi:10.1109/ACCESS.2020.3039278.ISSN 2169-3536.
  5. ^Lin, Yibo; Jiang, Zixuan; Gu, Jiaqi; Li, Wuxi; Dhar, Shounak; Ren, Haoxing; Khailany, Brucek; Pan, David Z. (April 2021)."DREAMPlace: Deep Learning Toolkit-Enabled GPU Acceleration for Modern VLSI Placement".IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.40 (4):748–761.doi:10.1109/TCAD.2020.3003843.ISSN 1937-4151.S2CID 225744481.
  6. ^Lyakhov, Pavel; Valueva, Maria; Valuev, Georgii; Nagornov, Nikolai (2020-12-18)."A Method of Increasing Digital Filter Performance Based on Truncated Multiply-Accumulate Units".Applied Sciences.10 (24): 9052.doi:10.3390/app10249052.ISSN 2076-3417.Hardware simulation on FPGA increased the digital filter performance.
  7. ^Mohan, Prashanth; Wang, Wen; Jungk, Bernhard; Niederhagen, Ruben; Szefer, Jakub; Mai, Ken (October 2020)."ASIC Accelerator in 28 nm for the Post-Quantum Digital Signature Scheme XMSS".2020 IEEE 38th International Conference on Computer Design (ICCD). Hartford, CT, USA: IEEE. pp. 656–662.doi:10.1109/ICCD50377.2020.00112.ISBN 978-1-7281-9710-4.S2CID 229330964.
  8. ^Morgan, Timothy Pricket (2014-09-03)."How Microsoft Is Using FPGAs To Speed Up Bing Search". Enterprise Tech. Retrieved2018-09-18.
  9. ^"Project Catapult".Microsoft Research.
  10. ^MicroBlaze Soft Processor: Frequently Asked QuestionsArchived 2011-10-27 at theWayback Machine
  11. ^Vassányi, István (1998)."Implementing processor arrays on FPGAs".Field-Programmable Logic and Applications from FPGAs to Computing Paradigm. Lecture Notes in Computer Science. Vol. 1482. pp. 446–450.doi:10.1007/BFb0055278.ISBN 978-3-540-64948-9.
  12. ^Zhoukun WANG and Omar HAMMAMI. "A 24 Processors System on Chip FPGA Design with Network on Chip".[1]
  13. ^John Kent. "Micro16 Array - A Simple CPU Array"
  14. ^Kit Eaton. "1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer". 2011.[2]
  15. ^"Scientists Squeeze Over 1,000 Cores onto One Chip". 2011.[3]Archived 2012-03-05 at theWayback Machine
  16. ^Kienle, Frank; Wehn, Norbert; Meyr, Heinrich (December 2011). "On Complexity, Energy- and Implementation-Efficiency of Channel Decoders".IEEE Transactions on Communications.59 (12):3301–3310.arXiv:1003.3792.doi:10.1109/tcomm.2011.092011.100157.ISSN 0090-6778.S2CID 13863870.
  17. ^ab"Regular Expressions in hardware". Retrieved17 July 2014.
  18. ^https://www.intel.com/content/dam/doc/product-brief/intel-pro-100-s-desktop-adapter-datasheet.pdf
  19. ^"Compression Accelerators - Microsoft Research".Microsoft Research. Retrieved2017-10-07.
  20. ^abFarabet, Clément, et al. "Hardware accelerated convolutional neural networks for synthetic vision systems[dead link]." Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on. IEEE, 2010.

External links

edit

[8]ページ先頭

©2009-2025 Movatter.jp