View Proposal
-
Proposer
-
Rob Stewart
-
Title
-
Implementing Haskell with FPGA hardware
-
Goal
-
Develop hardware for runtime system components
-
Description
- The performance of functional programming language implementations until 15 years ago relied on increasing CPU clock frequencies. The last decade has seen the rise of the multi-core era to overcome this stall. Due to a single connection from multiple cores on a CPU to main memory, general software implementations of parallel programming languages are finding the limits of CPU architectures due to the Von Neumann bottleneck.
In very recent times, the fabric on which we compute has changed fundamentally. Driven by the needs of AI, Big Data and energy efficiency, industry is moving away from general purpose CPUs to efficient special purpose hardware e.g. Google's Tensorflow Processing Unit (TPU) in 2016, Huawei's Neural Processing Unit (NPU) in smartphones, and Graphcore's Intelligent Processing Unit (IPU) in 2017. This reflects a wider shift to special purpose hardware to improve execution efficiency.
This BSc project will explore alternative approaches to implementing functional languages, by offloading runtime system components onto dedicated FPGA-based hardware implementation. For example special purpose memory hierarchies to minimise memory traffic, prefetching in hardware, or garbage collection in hardware to reclaim memory with minimal latency. The project will work alongside the EPSRC HAFLANG project ( https://haflang.github.io ), where the aim is to develop a processor architecture for managed functional languages to significantly outperform the runtime and energy performance of CPUs.
The student would be working alongside the HAFLANG project's postdoc researcher on this project, with frequent meetings with Rob Stewart.
- Resources
-
-
Background
-
-
Url
-
External Link
-
Difficulty Level
-
Challenging
-
Ethical Approval
-
None
-
Number Of Students
-
1
-
Supervisor
-
Rob Stewart
-
Keywords
-
-
Degrees
-
Bachelor of Science in Computer Science
Bachelor of Science in Computer Systems
Bachelor of Science in Software Development for Business (GA)
Master of Engineering in Software Engineering
Master of Science in Artificial Intelligence
Master of Science in Artificial Intelligence with SMI
Master of Science in Computer Science for Cyber Security
Master of Science in Computer Systems Management
Master of Science in Computing (2 Years)
Master of Science in Data Science
Master of Science in Information Technology (Software Systems)
Master of Science in Network Security
Master of Science in Robotics
Master of Science in Software Engineering
Bachelor of Science in Computing Science