<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Flexible Acceleration of Convolutions on FPGAs: planning NEURAghe 2.0</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Carreras</string-name>
          <email>marco.carreras@unica.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gianfranco Deriu</string-name>
          <email>gianfranco.deriu@unica.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paolo Meloni</string-name>
          <email>paolo.meloni@unica.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universita degli Studi di Cagliari</institution>
          ,
          <addr-line>DIEE</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Convolutional Neural Networks are commonly employed in applications involving Computer Vision tasks like image/video classi cation/recognition/segmentation. The increasing focus of the community on this topic, has generated a wide scope of approaches that use di erent kernel shapes and techniques for executing convolutions with respect to the classic one, such as for example separable convolutions, deformable convolutions or deconvolutions ([4, 5]), frequently used in semantic segmentation tasks ([23, 13]). While it is common knowledge that FPGAs can be used to accelerate classic Convolutional layers in CNNs, there is limited literature about FPGA-based accelerators supporting less regular and common processing kernels ([20]). In our research, starting from the previous experience acquired developing NEURAghe, we plan to improve exibility of CNN accelerators and to study new methodologies to improve e ciency on the previously mentioned use-cases. As a rst experiment we focus on layered approaches based on 1D convolutions, that, as indicated by several recent research results, can be e ectively used to classify and segment time series and sequences, as well as in tasks involving sequence modeling. In multiple scenarios a convolution approach applied on the time dimension, hereafter called Temporal Convolution Network (TCN) can outperform classic strategies relying on recurrent networks in terms of accuracy and training time. We modi ed NEURAghe to support TCN and validate results on an ECG-classi cation benchmark, achieving up to 95% e ciency in terms of GOPS/s with respect to the accelerator peak performance.</p>
      </abstract>
      <kwd-group>
        <kwd>Temporal Convolutional Neural Network</kwd>
        <kwd>TCN</kwd>
        <kwd>hardware accelerator</kwd>
        <kwd>FPGA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Recent studies demonstrate the e ectiveness of CNNs, already extensively used for
computer vision applications, over tasks like audio synthesis ([
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]) and word-level
language modeling ([
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). Moreover, among classical convolution approaches, there
is an increasing interest towards non regular kernel shapes, like those applied for
separable and deformable convolutions. A speci c research work, like Bai et al.
([
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]), demonstrates that the implementation of a Temporal Convolutional Neural
Network over typical sequence modeling tasks can outperform more commonly
used Recurrent Neural Networks (RNN).
      </p>
      <p>
        Nowadays also, a broad range of mono-dimensional CNNs are used for human
signals analysis tasks like ECG classi cation ([
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) or action detection ([
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]).
      </p>
      <p>The ubiquitous success of CNNs and their high demands in terms of
computing power have motivated during past years a huge out ow of research aimed at
developing hardware accelerators for CNN inference. Among other solution, one
of the most adopted has been exploiting the cooperation between general purpose
processors and FPGAs in modern SoCs, like Xilinx Zynq, providing an e cient
implementation of MAC operations on the large amount of DSP Slices available.</p>
      <p>Previous mentioned areas of application together with the di erent
convolutional schemes suggest that these kind of hardware accelerators need to be as
exible as possible, supporting multiple CNN's features.</p>
      <p>
        Looking to this objective, and motivated by recent claims about the e
ectiveness of TCNs in di erent application domains, this work explores the capabilities
of a CNN inference accelerator, NEURAghe [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], over a TCN use-case. To this aim,
the architecture has been enhanced to support freely selectable kernel sizes and
dilated convolutions, with freely selectable dilation rates, providing the exibility
needed in most TCN algorithms, as well as in regular CNNs.
      </p>
      <p>We report a performance analysis and propose an optimization method relying
on batch processing to improve e ciency.</p>
      <p>The TCN under test with its parameters variability over layers represents a
good benchmark for the architecture's exibility capabilities.
2</p>
    </sec>
    <sec id="sec-2">
      <title>State of the art</title>
      <p>
        Convolutional Neural Networks have become the state of the art solutions in elds
which concern computer vision tasks like image recognition [
        <xref ref-type="bibr" rid="ref1 ref11 ref18">11, 18, 1</xref>
        ], face
detection [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], video classi cation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        They are also used in applications requiring a mono-dimensional elaboration
of data like sentence classi cation [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], speech recognition [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], text understanding
[
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and Natural Language Processing tasks [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        More recent applications involves machine translation [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], audio synthesis [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]
and language modeling [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        On the other hand Recurrent Neural Network (RNN) are considered the go-to
solution for sequence modeling tasks [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], although they are di cult to train leading
to commonly used architectures like LSTM [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and GRU [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Nevertheless, in a recent study, Bai et al. ([
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) questioned the common
association between RNN and sequence modeling. They proposed a Temporal
Convolutional Network template that ouperforms recurrent architectures like LSTM and
GRU in sequence modeling benchmarks often used to evaluate RNNs.
      </p>
      <p>
        Another type of application, recently targeted by TCNs, involves human signal
analysis like ECG classi cation ([
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]) or action detection ([
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]).
      </p>
      <p>
        With respect to CNN applications for Computer Vision, during years, many
hardware solutions have been proposed in order to accelerate the inference task.
Among di erent solutions adopted, one common approach exploits modern SoCs
integrating both a general purpose processor and a programmable logic [
        <xref ref-type="bibr" rid="ref22 ref27">22, 27</xref>
        ].
      </p>
      <p>
        Other works proposed FPGA based accelerators for LSTM RNN, like [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>To our knowledge there are no FPGA-based architectures that speci cally
tackled the problem of hardware acceleration for sequences processed by Temporal
Convolutional Neural Networks.
3</p>
      <p>TCN model
net’s receptive field
input
layer 1: kernel_size = 2</p>
      <p>dilation = 1
layer 2: kernel_size = 3</p>
      <p>dilation = 2
layer 3: kernel_size = 4</p>
      <p>dilation = 3
output</p>
      <p>The input of the network is a continuous sequence of samples from a set of
source channels. While in some use-cases input processing can be executed o -line,
multiple applications require continuous and near-real-time analysis of the input
aimed at the identi cation of speci c events and/or at promptly taking decision
on speci c actions. In this case, the TCN must analyze as soon as possible any
new input sequence sampled by the system and update at every new sample time.
At every time step the network processes a sliding window whose minimal size is
known as receptive eld of the network. This is the smallest amount of samples
needed to produce an output and depends on convolutional layer parameters such
as the kernel size and the dilation:
receptivef ield = 1 +</p>
      <p>L
X [kernel size(l)
l=1
dilation(l)
(1)
where l 2 1; 2:::L is a layer of the network.</p>
      <p>Figure 1 represents a computational step of a TCN with di erent layer
parameters. Each input or output dot must be considered as a vector with its own
dimension in terms of number of channels. The gure shows how many input
samples are needed by each layer to perform a valuable convolution and how kernel size
and dilation a ect the receptive eld. Moreover, especially with di erent dilation
rates, the network can have longer memory without increasing too much the depth
and the number of parameters to train.
4</p>
    </sec>
    <sec id="sec-3">
      <title>NEURAghe Architecture</title>
      <p>
        The starting point for this NEURAghe architectural template has been the one
described in Meloni et al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. This architecture exploits the cooperation between
the ARM Cortex-A9 processing system and the programmable logic in Xilinx
Zynq devices. Communication at the PS-PL interface is guaranteed by the high
performance 64 bit ports and two general purpose 32 bit ports.
      </p>
      <p>The programmable logic hosts the Convolution Speci c Processor (CSP) while
the processing system acts as a General Purpose Processor (GPP) dealing with
tasks hardly to accelerate in the programmable logic, like fully connected layers
execution. In this work, the CSP has been enhanced with respect to the previous</p>
      <sec id="sec-3-1">
        <title>GENERAL</title>
      </sec>
      <sec id="sec-3-2">
        <title>PURPOSE</title>
      </sec>
      <sec id="sec-3-3">
        <title>PROCESSOR</title>
        <sec id="sec-3-3-1">
          <title>HP slave port to DDR</title>
        </sec>
        <sec id="sec-3-3-2">
          <title>HP slave port to DDR</title>
        </sec>
        <sec id="sec-3-3-3">
          <title>HP slave port to DDR</title>
        </sec>
        <sec id="sec-3-3-4">
          <title>HP slave port to DDR</title>
        </sec>
        <sec id="sec-3-3-5">
          <title>GP slave port to stdout</title>
        </sec>
        <sec id="sec-3-3-6">
          <title>GP master port</title>
          <p>DDR
64 bit
32 bit</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>CONVOLUTION</title>
      </sec>
      <sec id="sec-3-5">
        <title>SPECIFIC</title>
      </sec>
      <sec id="sec-3-6">
        <title>PROCESSOR</title>
        <p>High-speed domain
Low-speed domain
PS – PL
interface
L2 BRAM
Memory</p>
      </sec>
      <sec id="sec-3-7">
        <title>INSTR MEM</title>
        <p>WDMA0 rx load
WDMA1 rx load
WEIGHT MEMORY
0 1 2 3 … 45 46 47
t
c
e
n
n
o
c
itr
e
n
d
e
s
a
b
–
I
X
A</p>
        <p>ArxDMtxA
ad re
lo tso
12 ports x_in
…
XBAR</p>
      </sec>
      <sec id="sec-3-8">
        <title>CONVOLUTION ENGINE</title>
        <p>4 ports y_in 4ports y_out
XBAR</p>
        <p>TCDM
0 1 2 3 … 16 18 19
uC</p>
        <p>PRIVATE
MEM
version to improve the accelerator's exibility towards various networks
characteristics. In particular there has been a substantial modi cation of the Convolution
Engine, previously characterized by the so called Line Bu er and a complete
different SoP module model. The former, in charge to supply convolutional windows
to the SoP matrix, has been removed thanks to the new pixel fetching method,
while the latter, composed by a double trellis of pipelined DSPs, has been
completely redesign. Both changes let the architecture to be more exible. Finally the
transfers capabilities are improved by doubling the Weight DMA.
The Convolution Engine is the computational core of the accelerator. It is designed
to execute a high number of Multiply and Accumulate (MAC) operations in
parallel, to relief the host processor from the most computational-intensive tasks of
a CNN. It is composed by a matrix of M columns by N rows of Sum of Product
(SoP) units in charge to calculate the contribution of M input features to N
output features. Partial result from SoPs in each row are summed together by means
of N Shift Adder modules.</p>
        <p>kernelsize
dilation
address
kernel size
address</p>
        <p>SoP
0
SoP
C
SoP
18
SoP
24</p>
        <p>SoP
1
SoP
D
SoP
19
SoP
25</p>
        <p>SoP
2
SoP
E
SoP
1A
SoP
26</p>
        <p>Activation source
SoP
3
SoP
F
SoP
1B
SoP
27</p>
        <p>SoP
4
SoP
10
SoP
1C
SoP
28</p>
        <p>SoP
5
SoP
11
SoP
1D
SoP
29</p>
        <p>SoP
6
SoP
12
SoP
1E
SoP
2A</p>
        <p>SoP
7
SoP
13
SoP
1F
SoP
2B</p>
        <p>SoP
8
SoP
14
SoP
20
SoP
2C</p>
        <p>Weights source</p>
        <p>In more detail, each SoP reads 4 samples=cycle and executes 4 M ACs=cycle,
one for each of the 4 consecutive kernel windows applied to an IF. In this way a
SoP module produces 4 new output samples after kernel size cycles. Every output
sample produced can be sent to the Shift Adder module.</p>
        <p>In this con guration the C.E. has a 12 4 SoP matrix, therefore, every clock
cycle, 4 samples of 12 input features are fetched to SoPs from the C.E. internal
memory (TCDM), by means of the Activation Source modules. Samples of every IF
are sent to the 4 SoPs of a column. Whereas 12 4 weight kernels are independently
fetched from Weight Memory banks by means of the Weights source module.</p>
        <p>SoP modules are built using 4 Xilinx DSP48E1 primitives con gured to perform
a MAC operation per cycle using the internal loop to iterate among consecutive
partial result given by a weight kernel application. This design allows the
accelerator:
{ to be kernel size agnostic,
{ to execute convolutions with multiple stride values without performance
overhead.</p>
        <p>As the Convolution Engine works on 16-bit sample data, every SoP reads 64-bit
activation data per cycle and multiplies all four pixels for the same kernel weight.
Thus each SoP needs to read only 16-bit weight data per cycle.</p>
        <p>Shift Adder modules read 64-bit data that are 4 16-bit values resulting from
the previous 12 IF contribution and produce 64-bit data output summing together
these inputs and those given by the actual 12 IF contribution.
4.2</p>
        <p>Scheduling
As NEURAghe exploits a double bu ered memory policy, local memory banks
are subdivided in two parts, one dedicated to the data needed for the actual
computational step, while the other allows to perform data transfers that will
be used for the next phase. This allows the accelerator to overlap transfers with
computational phases aiming to reduce idles.</p>
        <p>From the e ciency point of view, the best situation is when all transfers are
overlapped by execution phases because it is exploited all the computational power
of the accelerator.
4.3</p>
        <p>TCN model on NEURAghe
Temporal CNN characteristics allow NEURAghe to handle samples of di erent
layers in a speci c way that slightly di ers from regular convolutions. As
mentioned above, kernel size and dilation a ect the receptive eld of the network that
de nes the number of input samples that must be processed to gain a new output.
Furthermore, for every layer a speci c receptive eld can be considered, given by:
Layer N
• Kernel size = 2
• Dilation = 3
• Batch size = 1
Layer N+1
• Kernel size = 2
• Dilation = 2
• Batch size = 1</p>
        <p>Receptive
field N
that is the minimum number of input samples per channel needed to obtain
an output sample from a layer. Figure 4 shows the memory status in di erent
moments for two layers of an example network. In this example, layers N and
N + 1 are characterized by the same kernel size of 2 and dilation of 3 and 2
respectively. For the sake of simplicity, it is represented a single sample update
instead of the 4 processed by the accelerator.</p>
        <p>As it can be seen, for every computational step, it is necessary to retain in
memory only the samples equal to the speci c receptive eld of each layer. As a
consequence, every transfer concerns only this minimum amount of samples per
channel.
4.4</p>
        <p>Improving through batch processing
The previously mentioned approach minimizes the classi cation/recognition
latency. It produces outputs as soon as possible and repeats network execution every
time that a new sample is available to update the input sliding window.</p>
        <p>However, this can determine the performance of the system to be easily
bandwidth limited. All the network parameters/weights have to be loaded on the
accelerator local memory and are used only for the production of one single output.
This decreases signi cantly the operational intensity of the application.</p>
        <p>As an example we show a roo ine model of our system in Figure 5. The leftmost
Batch size = 348
300
100
s
/
SP10
O
G</p>
        <p>Batch size = 1
1 3
30</p>
        <p>OPS/byte
red symbol indicates the performance achieved when using the sample-by-sample
processing on the use-case that will be presented in the following.</p>
        <p>As it may be noticed, in this case, the system performance are de nitely limited
by input/output bandwidth.</p>
        <p>If the application allows to trade-o some increase in latency to improve
performance, a solution to this problem may rely on batch processing. We can pre-bu er
input samples and process longer sample sequences producing more outputs with
Batch size = 8</p>
        <p>C.S.P. Roofline Model</p>
        <p>Peak Convolutional Engine Performance (30,72 GOPS/s)</p>
        <p>Layer N
• Kernel size = 2
• Dilation = 3
• Batch size = B
Layer N+1
• Kernel size = 2
• Dilation = 2
• Batch size = B</p>
        <p>New Samples = B
Receptive field N
Receptive field N+1</p>
        <p>DMAs</p>
        <p>CE
TCDM
every TCN execution. Figure 6 shows the transfer scheduling when batch size is
increased.</p>
        <p>Increasing the batch size, with the same weight transfers from DDR to local
memory, we perform more computations. In this way, it is possible to increase the
operational complexity and to gain e ciency, see other red symbols in Figure 5.
4.5</p>
        <p>Resources utilization on target board
The NEURAghe architecture is scalable and can be implemented in di erent
devices like those which are part to the Xilinx Zynq-7000 SoC family. In particular,
the con guration described above is highly suitable for boards, like the Zedboard,
integrating a Xilinx Zynq Z-7020. Table 1 shows the resource occupation of the
recon gurable logic of the device.</p>
        <p>It is worth noticing that the architecture uses 192 out of the 220 DSP blocks
available in the device, so the processing power utilization is very high. Also the
Block RAM primitives are extensively used due to the particular Weights Memory
implementation. The accelerator on Zedboard is clocked at 80 MHz.
5</p>
        <p>
          Use case network: ECG Classi cation
The use case that we have chosen as benchmark is a network for ECG
monitoring and classi cation (Goodfellow et al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]). It performs a classi cation over
single lead ECG waveforms as either Normal Sinus Rhythm, Atrial Fibrillation, or
Other Rhythm and reaches around 90% average accuracy over targeted single lead
ECG waveforms. Experimental dataset for this network are characterized by 16
bit batches of data sampled at 300 Hz frequency. The network consists of 13
computational blocks mostly made of a 1D Convolutional layer, a batch normalization
layer, a ReLU and a dropout stage. Only 3 layer have also a Max Pooling stage
with a pooling size of 2 between ReLU and Dropout. Computational blocks have
decreasing kernel sizes while dilation parameter increases through the network.
The analysis of the architecture performance has been made distinguishing three
operative modes: latency constrained network, latency unconstrained network,
realtime execution. For the rst one the minimum input sized version of the network
has been considered since it ensures best performance in terms of latency.
        </p>
        <p>In Table 2 are shown the characteristics of convolutional layers of the network
along with minimum input size required. The latency constrained con guration
provides best performance from the point of view of total elaboration time for a
new output value of the network. On the other hand this con guration lacks in
terms of e ciency with respect to peak GOP S=s reachable by NEURAghe ( rst
column of Table 3).</p>
        <p>Low e ciency for this con guration is due to the huge weight transfer overhead
with respect to the very short activation load time and execution time. So, despite
the double bu ered scheduling strategy, transfer and computation phases hardly
overlap.</p>
        <p>If the target application has no latency constraint it is possible to work with
much more activation samples as input for every layer. In particular when the
execution time reaches and surpasses transfer times the architecture can get
performances very close to the peak, as it is shown in third column of Table 3.</p>
        <p>As a third case it can be considered that for which the latency constraint is
not as tightening as for the rst case and it is possible to increase the e ciency
without compromise performance from the point of view of the execution time.</p>
        <p>In particular it is possible to do interesting assumption about a real time
operating mode by referring to the sample rate mentioned in the paper, that is 300 Hz.</p>
        <p>Second column of table 3 also shows that by bu ering a small amount of
samples, that is increasing the batch size parameter by 8 samples, before feeding the
accelerator, it is possible to substantially gain in e ciency without loss in
performance with respect to the latency constrained con guration. Moreover, having an
initial bu ering of 8 samples means that the accelerator has a new batch every
26:67 ms which is enough to complete an end-to-end computation for this network.
6</p>
        <p>Conclusions and future work
In this work has been presented an application towards Temporal Convolutional
Networks of NEURAghe, an FPGA-based hardware accelerator enhanced to be
kernel and dilation rate agnostic and also to process inputs with multiple stride
values, without overhead. Motivated by recent claim about TCNs implementation
over various applications it has been made an explorations of the architecture's
performances with respect to convolutional layers of an use case TCN. Results
showed that the architecture has a good exibility over various layer
characteristics. It has also been showed how performances improve by changing the
computational paradigm, going from a latency constrained approach to a batched approach,
by agreeing with a certain latency.</p>
        <p>The next step can be exploring di erent architectural con gurations suitable
both for di erent target devices and di erent TCNs in order to nd the solution
that adapt best.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>Deep image: Scaling up image recognition</article-title>
          .
          <source>CoRR abs/1501</source>
          .02876 (
          <year>2015</year>
          ), http: //arxiv.org/abs/1501.02876, withdrawn.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bai</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolter</surname>
            ,
            <given-names>J.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koltun</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An empirical evaluation of generic convolutional and recurrent networks for sequence modeling</article-title>
          . arXiv preprint arXiv:
          <year>1803</year>
          .
          <volume>01271</volume>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cho</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Van Merrienboer,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Bahdanau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Bengio</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y.</surname>
          </string-name>
          :
          <article-title>On the properties of neural machine translation: Encoder-decoder approaches</article-title>
          .
          <source>arXiv preprint arXiv:1409.1259</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Chollet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Xception: Deep learning with depthwise separable convolutions</article-title>
          .
          <source>CoRR abs/1610</source>
          .02357 (
          <year>2016</year>
          ), http://arxiv.org/abs/1610.02357
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Dai</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xiong</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , G.,
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wei</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Deformable convolutional networks</article-title>
          .
          <source>CoRR abs/1703</source>
          .06211 (
          <year>2017</year>
          ), http://arxiv.org/abs/1703.06211
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dauphin</surname>
            ,
            <given-names>Y.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grangier</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Language modeling with gated convolutional networks</article-title>
          .
          <source>CoRR abs/1612</source>
          .08083 (
          <year>2016</year>
          ), http://arxiv.org/abs/1612.08083
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Goodfellow</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bengio</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Courville</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Deep learning</article-title>
          . MIT press (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Goodfellow</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goodwin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eytan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazwi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laussen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Towards understanding ecg rhythm classi cation using convolutional neural networks and attention mappings (08</article-title>
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Guan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yuan</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cong</surname>
          </string-name>
          , J.:
          <article-title>Fpga-based accelerator for long short-term memory recurrent neural networks</article-title>
          .
          <source>In: 2017 22nd Asia</source>
          and
          <article-title>South Paci c Design Automation Conference (ASP-DAC)</article-title>
          . pp.
          <volume>629</volume>
          {
          <issue>634</issue>
          (
          <year>2017</year>
          ). https://doi.org/10.1109/ASPDAC.
          <year>2017</year>
          .7858394
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hannun</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Case</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casper</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catanzaro</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diamos</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elsen</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prenger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Satheesh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sengupta</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coates</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          :
          <article-title>Deep speech: Scaling up end-toend speech recognition</article-title>
          .
          <source>CoRR abs/1412</source>
          .5567 (
          <year>2014</year>
          ), http://arxiv.org/abs/1412. 5567
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>He</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
          </string-name>
          , J.:
          <article-title>Deep residual learning for image recognition</article-title>
          .
          <source>CoRR abs/1512</source>
          .03385 (
          <year>2015</year>
          ), http://arxiv.org/abs/1512.03385
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hochreiter</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidhuber</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Long short-term memory</article-title>
          .
          <source>Neural computation 9(8)</source>
          ,
          <volume>1735</volume>
          {
          <fpage>1780</fpage>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Jegou</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drozdzal</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vazquez</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Romero</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bengio</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>The one hundred layers tiramisu: Fully convolutional densenets for semantic segmentation</article-title>
          .
          <source>CoRR abs/1611</source>
          .09326 (
          <year>2016</year>
          ), http://arxiv.org/abs/1611.09326
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kalchbrenner</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Espeholt</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simonyan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oord</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          v.d.,
          <string-name>
            <surname>Graves</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kavukcuoglu</surname>
            ,
            <given-names>K.:</given-names>
          </string-name>
          <article-title>Neural machine translation in linear time</article-title>
          .
          <source>arXiv preprint arXiv:1610.10099</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Karpathy</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toderici</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shetty</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leung</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sukthankar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fei-Fei</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Largescale video classi cation with convolutional neural networks</article-title>
          .
          <source>In: Proceedings of the IEEE conference on Computer Vision and Pattern Recognition</source>
          . pp.
          <volume>1725</volume>
          {
          <issue>1732</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reiter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Interpretable 3d human action analysis with temporal convolutional networks</article-title>
          .
          <source>CoRR abs/1704</source>
          .04516 (
          <year>2017</year>
          ), http://arxiv.org/abs/1704.04516
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Convolutional neural networks for sentence classi cation</article-title>
          .
          <source>arXiv preprint arXiv:1408.5882</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Krizhevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sutskever</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hinton</surname>
          </string-name>
          , G.E.:
          <article-title>Imagenet classi cation with deep convolutional neural networks</article-title>
          .
          <source>In: Proceedings of the 25th International Conference on Neural Information Processing Systems - Volume 1</source>
          . pp.
          <volume>1097</volume>
          {
          <fpage>1105</fpage>
          . NIPS'
          <volume>12</volume>
          , Curran Associates Inc.,
          <source>USA</source>
          (
          <year>2012</year>
          ), http://dl.acm.org/citation.cfm?id=
          <volume>2999134</volume>
          .
          <fpage>2999257</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <surname>J.</surname>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>Q.</given-names>
            ,
            <surname>Wei</surname>
          </string-name>
          ,
          <string-name>
            <surname>X.</surname>
          </string-name>
          :
          <article-title>Classi cation of ecg signals based on 1d convolution neural network</article-title>
          .
          <source>In: 2017 IEEE 19th International Conference on eHealth Networking, Applications and Services (Healthcom)</source>
          . pp.
          <volume>1</volume>
          {
          <issue>6</issue>
          (
          <issue>10</issue>
          <year>2017</year>
          ). https://doi.org/10.1109/HealthCom.
          <year>2017</year>
          .8210784
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zou</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fu</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>An fpga-based cnn accelerator integrating depthwise separable convolution</article-title>
          .
          <source>Electronics</source>
          <volume>8</volume>
          (
          <issue>3</issue>
          ),
          <volume>281</volume>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Meloni</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Capotondi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deriu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brian</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ra</surname>
            <given-names>o</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Benini</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Neuraghe: Exploiting CPU-FPGA synergies for e cient and exible CNN inference acceleration on zynq socs</article-title>
          .
          <source>CoRR abs/1712</source>
          .00994 (
          <year>2017</year>
          ), http://arxiv. org/abs/1712.00994
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Mittal</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A survey of fpga-based accelerators for convolutional neural networks</article-title>
          .
          <source>Neural computing and applications</source>
          pp.
          <volume>1</volume>
          {
          <issue>31</issue>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Ronneberger</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brox</surname>
          </string-name>
          , T.:
          <article-title>U-net: Convolutional networks for biomedical image segmentation</article-title>
          .
          <source>CoRR abs/1505</source>
          .04597 (
          <year>2015</year>
          ), http://arxiv.org/abs/1505. 04597
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zadrozny</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Learning character-level representations for part-ofspeech tagging</article-title>
          .
          <source>In: Proceedings of the 31st International Conference on Machine Learning (ICML-14)</source>
          . pp.
          <year>1818</year>
          {
          <year>1826</year>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Taigman</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranzato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolf</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Deepface: Closing the gap to humanlevel performance in face veri cation</article-title>
          .
          <source>In: Proceedings of the IEEE conference on computer vision and pattern recognition</source>
          . pp.
          <volume>1701</volume>
          {
          <issue>1708</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Van Den Oord</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dieleman</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simonyan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vinyals</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Graves</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalchbrenner</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Senior</surname>
            ,
            <given-names>A.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kavukcuoglu</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Wavenet: A generative model for raw audio</article-title>
          .
          <source>SSW</source>
          <volume>125</volume>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gong</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xie</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Dlau: A scalable deep learning accelerator unit on fpga</article-title>
          .
          <source>IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems</source>
          <volume>36</volume>
          (
          <issue>3</issue>
          ),
          <volume>513</volume>
          {
          <fpage>517</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Weston</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          :
          <article-title>Dialog-based language learning</article-title>
          .
          <source>In: Advances in Neural Information Processing Systems</source>
          . pp.
          <volume>829</volume>
          {
          <issue>837</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          , San,
          <string-name>
            <given-names>P.P.</given-names>
            ,
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.L.</given-names>
            ,
            <surname>Krishnaswamy</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Deep convolutional neural networks on multichannel time series for human activity recognition</article-title>
          .
          <source>In: Proceedings of the 24th International Conference on Arti cial Intelligence</source>
          . pp.
          <volume>3995</volume>
          {
          <fpage>4001</fpage>
          . IJCAI'15, AAAI Press (
          <year>2015</year>
          ), http://dl.acm.org/citation.cfm?id=
          <volume>2832747</volume>
          .
          <fpage>2832806</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Zeng</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>L.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mengshoel</surname>
            ,
            <given-names>O.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Zhang, J.:
          <article-title>Convolutional neural networks for human activity recognition using mobile sensors</article-title>
          .
          <source>In: 6th International Conference on Mobile Computing, Applications and Services</source>
          . pp.
          <volume>197</volume>
          {
          <issue>205</issue>
          (11
          <year>2014</year>
          ). https://doi.org/10.4108/icst.mobicase.
          <year>2014</year>
          .257786
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>