UT-OCL: An OpenCL Framework for Embedded Systems Using Xilinx FPGAs
University of Toronto
University of Toronto, 2016
@phdthesis{mirian2016ut,
title={UT-OCL: An OpenCL Framework for Embedded Systems Using Xilinx FPGAs},
author={Mirian, Vincent},
year={2016},
school={University of Toronto (Canada)}
}
The number of heterogeneous components on a System-on-Chip (SoC) has continued to increase. Software developers leverage these heterogeneous systems by using high-level languages to enable the execution of applications. For the application to execute correctly, hardware support for features and constructs of the programming model need to be incorporated into the system. OpenCL is a standard that enables the control and execution of kernels on heterogeneous systems. The standard garnered much interest in the FPGA community when two major FPGA vendors released CAD tools with a modified design flow to support the constructs and features of the standard. Unfortunately, this environment is closed and cannot be modified by the user, making the features and constructs of the standard difficult to explore. The purpose of this work is to present UT-OCL, an open-source OpenCL framework for embedded systems on Xilinx FPGAs, and use UT-OCL to explore system architecture and device architecture features. By open-sourcing this framework, users can experiment with all aspects of OpenCL, primarily targeting FPGAs, including testing possible modifications to the standard as well as exploring the underlying computing architecture. The framework can also be used for a fair comparison between hardware accelerators (also known as devices in the OpenCL standard), since the environment and the testbenches are constant, leaving the devices as the only variable in the system. This dissertation shows that the UT-OCL framework enables the exploration of a mechanism to efficiently transfer data between the host and device memory, a fair comparison for two versions of a CRC application and shows the trade-offs between resource utilization and performance for a device using a network-on-chip paradigm. In addition, by using the framework, the dissertation explores six approaches implementing Shared Virtual Memory (SVM), a feature in the OpenCL specification that enables the host and device to share the same address space. Finally, this dissertation presents the first published implementation of a pipe that is compliant to the OpenCL specification.
June 5, 2017 by hgpu