Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL
The decline of Moore’s law has led to a fundamental shift in the design of micro-processor architectures. Devices with parallel processing architectures such as GPUs, FPGAs and DSPs initially used specifically for dedicated tasks are now gaining popularity as accelerators for more general-purpose co...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Final Year Project |
Language: | English |
Published: |
2017
|
Subjects: | |
Online Access: | http://hdl.handle.net/10356/70507 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
id |
sg-ntu-dr.10356-70507 |
---|---|
record_format |
dspace |
spelling |
sg-ntu-dr.10356-705072023-03-03T20:40:18Z Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL Nandi, Shuvam Douglas Leslie Maskell School of Computer Science and Engineering DRNTU::Engineering::Computer science and engineering::Computer systems organization::Processor architectures DRNTU::Engineering::Computer science and engineering::Hardware::Register-transfer-level implementation DRNTU::Engineering::Computer science and engineering::Computing methodologies::Pattern recognition DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems The decline of Moore’s law has led to a fundamental shift in the design of micro-processor architectures. Devices with parallel processing architectures such as GPUs, FPGAs and DSPs initially used specifically for dedicated tasks are now gaining popularity as accelerators for more general-purpose computations. Performance is exploited in these devices by massively parallelising tasks across various compute units. CUDA and OpenCL are two application programming interface (API) models used to program parallel devices. The long-term objective this project seeks to achieve is the design of hypothetical network of multiple processors, capable of running applications in parallel. OpenCL is used to facilitate comparison of performance being a cross-compatible framework across multiple heterogeneous platforms. Initially, this report examines the performance of numerous computing devices. A simple matrix multiplication kernel was executed with different mappings of the kernel onto the devices. This was followed by profiling a complex application recognising handwritten digits from the MNIST database. Performance in terms of GOPS was computed from the execution timings obtained and by analysing the number of computations performed in the application. The second half of this project investigates free ISAs for implementing a processor as the core unit of the hypothetical engine. RISC-V is picked and studied as it provides several extensions to its base integer instruction set, thereby supporting computationally intensive tasks. An existing processor implementation is examined, followed by developing a new implementation based on RV32IM. Bachelor of Engineering (Computer Engineering) 2017-04-26T03:21:20Z 2017-04-26T03:21:20Z 2017 Final Year Project (FYP) http://hdl.handle.net/10356/70507 en Nanyang Technological University 87 p. application/pdf |
institution |
Nanyang Technological University |
building |
NTU Library |
continent |
Asia |
country |
Singapore Singapore |
content_provider |
NTU Library |
collection |
DR-NTU |
language |
English |
topic |
DRNTU::Engineering::Computer science and engineering::Computer systems organization::Processor architectures DRNTU::Engineering::Computer science and engineering::Hardware::Register-transfer-level implementation DRNTU::Engineering::Computer science and engineering::Computing methodologies::Pattern recognition DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems |
spellingShingle |
DRNTU::Engineering::Computer science and engineering::Computer systems organization::Processor architectures DRNTU::Engineering::Computer science and engineering::Hardware::Register-transfer-level implementation DRNTU::Engineering::Computer science and engineering::Computing methodologies::Pattern recognition DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems Nandi, Shuvam Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
description |
The decline of Moore’s law has led to a fundamental shift in the design of micro-processor architectures. Devices with parallel processing architectures such as GPUs, FPGAs and DSPs initially used specifically for dedicated tasks are now gaining popularity as accelerators for more general-purpose computations. Performance is exploited in these devices by massively parallelising tasks across various compute units. CUDA and OpenCL are two application programming interface (API) models used to program parallel devices. The long-term objective this project seeks to achieve is the design of hypothetical network of multiple processors, capable of running applications in parallel.
OpenCL is used to facilitate comparison of performance being a cross-compatible framework across multiple heterogeneous platforms. Initially, this report examines the performance of numerous computing devices. A simple matrix multiplication kernel was executed with different mappings of the kernel onto the devices. This was followed by profiling a complex application recognising handwritten digits from the MNIST database. Performance in terms of GOPS was computed from the execution timings obtained and by analysing the number of computations performed in the application.
The second half of this project investigates free ISAs for implementing a processor as the core unit of the hypothetical engine. RISC-V is picked and studied as it provides several extensions to its base integer instruction set, thereby supporting computationally intensive tasks. An existing processor implementation is examined, followed by developing a new implementation based on RV32IM. |
author2 |
Douglas Leslie Maskell |
author_facet |
Douglas Leslie Maskell Nandi, Shuvam |
format |
Final Year Project |
author |
Nandi, Shuvam |
author_sort |
Nandi, Shuvam |
title |
Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
title_short |
Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
title_full |
Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
title_fullStr |
Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
title_full_unstemmed |
Understanding and profiling a convolutional neural network application on different computing platforms using OpenCL |
title_sort |
understanding and profiling a convolutional neural network application on different computing platforms using opencl |
publishDate |
2017 |
url |
http://hdl.handle.net/10356/70507 |
_version_ |
1759857510808813568 |