Content deleted Content added
→Sample source code: add a notable use |
Filled in 1 bare reference(s) with reFill (), def acro, links, sep lede |
||
Line 24:
| wikibooks =
}}
'''Halide''' is a computer [[programming language]] designed for writing [[digital image processing]] code that takes advantage of [[memory locality]], [[array programming|vectorized computation]] and multi-core
==Language==
▲'''Halide''' is a computer [[programming language]] designed for writing [[digital image processing]] code that takes advantage of memory locality, vectorized computation and multi-core CPUs and GPUs.<ref name="refsite1"/> Halide is implemented as an internal [[Domain-specific language|DSL]] in C++.
The main innovation Halide brings is the separation of the [[algorithm]] being implemented from its [[
▲The main innovation Halide brings is the separation of the [[algorithm]] being implemented from its [[Scheduling (computing)|execution schedule]], i.e. code specifying the loop nesting, parallelization, loop unrolling and vector instruction. These two are usually interleaved together and experimenting with changing the schedule requires the programmer to rewrite large portions of the algorithm with every change. With Halide, changing the schedule does not require any changes to the algorithm and this allows the programmer to experiment with scheduling and finding the most efficient one.
== Sample source code ==
The following function defines and sets the schedule for a 3x3 [[
<source lang="cpp">
Func blur_3x3(Func input) {
Line 50:
==Use==
Google used Halide and [[TensorFlow]] for its Pixel 2 [[Pixel Visual Core]].<ref>{{cite web|url=https://www.theregister.co.uk/2017/10/22/ai_roundup/|title=Google and Intel cook AI chips, neural network exchanges – and more|publisher=Situation Publishing|website=[[The Register]]}}</ref>
== See also ==
Line 58:
== References ==
{{Reflist
== External links ==
|