Design and Implementation of a Domain Specific Language for Deep Learning

dc.contributor.advisorTian Zhao
dc.contributor.committeememberYu Cao
dc.contributor.committeememberEthan Munson
dc.contributor.committeememberSusan McRoy
dc.contributor.committeememberXiangming Mu
dc.creatorHuang, Xiao Bing
dc.date.accessioned2025-01-16T18:09:18Z
dc.date.available2025-01-16T18:09:18Z
dc.date.issued2018-05-01
dc.description.abstract\textit {Deep Learning} (DL) has found great success in well-diversified areas such as machine vision, speech recognition, big data analysis, and multimedia understanding recently. However, the existing state-of-the-art DL frameworks, e.g. Caffe2, Theano, TensorFlow, MxNet, Torch7, and CNTK, are programming libraries with fixed user interfaces, internal representations, and execution environments. Modifying the code of DL layers or data structure is very challenging without in-depth understanding of the underlying implementation. The optimization of the code and execution in these tools is often limited and relies on the specific DL computation graph manipulation and scheduling that lack systematic and universal strategies. Furthermore, most of these tools demand many dependencies beside the tool itself and require to be built to some specific platforms for DL training or inference. \\\\ \noindent This dissertation presents {\it DeepDSL}, a \textit {domain specific language} (DSL) embedded in Scala, that compiles DL networks encoded with DeepDSL to efficient, compact, and portable Java source programs for DL training and inference. DeepDSL represents DL networks as abstract tensor functions, performs symbolic gradient derivations to generate the Intermediate Representation (IR), optimizes the IR expressions, and compiles the optimized IR expressions to cross-platform Java code that is easily modifiable and debuggable. Also, the code directly runs on GPU without additional dependencies except a small set of \textit{JNI} (Java Native Interface) wrappers for invoking the underneath GPU libraries. Moreover, DeepDSL provides static analysis for memory consumption and error detection. \\\\ \noindent DeepDSL\footnote{Our previous results are reported in~\cite{zhao2017}; design and implementation details are summarized in~\cite{Zhao2018}.} has been evaluated with many current state-of-the-art DL networks (e.g. Alexnet, GoogleNet, VGG, Overfeat, and Deep Residual Network). While the DSL code is highly compact with less than 100 lines for each of the network, the Java source code generated by the DeepDSL compiler is highly efficient. Our experiments show that the output java source has very competitive runtime performance and memory efficiency compared to the existing DL frameworks.
dc.identifier.urihttp://digital.library.wisc.edu/1793/86190
dc.relation.replaceshttps://dc.uwm.edu/etd/1829
dc.subjectcompiler
dc.subjectconvolutional neural network
dc.subjectdeep learning
dc.subjectdeep neural network
dc.subjectDSL
dc.subjectfunctional programming
dc.titleDesign and Implementation of a Domain Specific Language for Deep Learning
dc.typedissertation
thesis.degree.disciplineComputer Science
thesis.degree.grantorUniversity of Wisconsin-Milwaukee
thesis.degree.nameDoctor of Philosophy

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Huang_uwm_0263D_12019.pdf
Size:
2.55 MB
Format:
Adobe Portable Document Format
Description:
Main File