"Lift is a novel approach to achieving performance portability on parallel accelerators.
Lift combines a
high-level functional data parallel language with a system of rewrite
rules which encode algorithmic and hardware-specific optimisation
choices.
Applications written in Lift are able to take advantage of GPUs (and in the future other accelerators), transparently from the user.
"Lift is a high-level domain-specific language and source-to-source compiler,
targeting single system as well as distributed heterogeneous hardware.
Initially targeting image processing algorithms, our framework now also
handles general stencil-based operations. It resembles OpenCL, but
abstracts away performance optimization details which instead are
handled by our source-to-source compiler. Machine learning-based
auto-tuning is used to determine which optimizations to apply. For the
distributed case, by measuring performance counters on a small input on
one device, previously trained performance models are used to predict
the throughput of the application on multiple different devices, making
it possible to balance the load evenly. Models for the communication
overhead are created in a similar fashion and used to predict the
optimal number of nodes to use."
http://www.lift-project.org/
https://github.com/lift-project/lift
https://hgpu.org/?p=17926
No comments:
Post a Comment