Next Article in Journal
Memristive and Memory Impedance Behavior in a Photo-Annealed ZnO–rGO Thin-Film Device
Next Article in Special Issue
An Autonomous Path Controller in a System on Chip for Shrimp Robot
Previous Article in Journal
An Attribute-Based Collaborative Access Control Scheme Using Blockchain for IoT Devices
Previous Article in Special Issue
DrawerPipe: A Reconfigurable Pipeline for Network Processing on FPGA-Based SmartNIC
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Exploring Efficient Acceleration Architecture for Winograd-Transformed Transposed Convolution of GANs on FPGAs †

1
Aerospace Information Research Institute, Chinese Academy of Sciences, Beijing 100094, China
2
University of Chinese Academy of Sciences, Beijing 100049, China
3
Shandong Industrial Institute of Integrated Circuits Technology Ltd, Jinan 250001, China
*
Author to whom correspondence should be addressed.
This paper is an extended version of our paper published in FPT2019: International Conference on Field-Programmable Technology.
Submission received: 8 January 2020 / Revised: 29 January 2020 / Accepted: 30 January 2020 / Published: 7 February 2020
(This article belongs to the Special Issue New Applications and Architectures Based on FPGA/SoC)

Abstract

:
The acceleration architecture of transposed convolution layers is essential since transposed convolution operations, as critical components in the generative model of generative adversarial networks, are computationally intensive inherently. In addition, the pre-processing of inserting and padding with zeros for input feature maps causes many ineffective operations. Most of the already known FPGA (Field Programmable Gate Array) based architectures for convolution layers cannot tackle these issues. In this paper, we firstly propose a novel dataflow exploration through splitting the filters and its corresponding input feature maps into four sets and then applying the Winograd algorithm for fast processing with a high efficiency. Secondly, we present an underlying FPGA-based accelerator architecture that features owning processing units, with embedded parallel, pipelined, and buffered processing flow. At last, a parallelism-aware memory partition technique and the hardware-based design space are explored coordinating, respectively, for the required parallel operations and optimal design parameters. Experiments of several state-of-the-art GANs by our methods achieve an average performance of 639.2 GOPS on Xilinx ZCU102 and 162.5 GOPS on Xilinx VC706. In reference to a conventional optimized accelerator baseline, this work demonstrates an 8.6× (up to 11.7×) increase in processing performance, compared to below 2.2× improvement by the prior studies in the literature.

1. Introduction

With the wide application of deep neural networks [1], several convolution operation-based generative adversarial networks (GANs) [2,3,4] have emerged to accomplish computer vision-related tasks such as image generation/synthesis [5,6,7,8] and 3D object modeling [9,10]. We have also observed that transposed convolution, a specific-domain convolution kernel, is the primary operation involved in the generator component of GANs, while convolution is involved in another component of GANs called discriminator. Abundant prior acceleration works for convolution operation in several CNN models were presented based on field programmable gate arrays (FPGAs) [11,12,13,14,15,16]. More recently, increasing the performance of transposed convolution has been considered in a few works [17,18,19,20,21]. Transposed convolutions are always implemented by the way of the conventional convolution form directly. Unfortunately, such an equivalent convolution-based dataflow causes more than 70% ineffective operations. GNA [17] and Zhang’s work [18] solved the issue by designing a distinct computing strategy, so-called “Input-Oriented Mapping (IOM) method”, to eliminate expanding the sparsity of matrix at the origin. Referring to Eyerss [22] who focused on the common convolution, the authors of [19,20,21] concerned removing all the invalid operations in the sparse matrix multiplication.
By a different method from the works mentioned above, the fast Winograd algorithm is explored in this work for efficiently deploying the transposed convolution layers of GANs on FPGAs. The fast Winograd algorithm provides an efficient means of transforming 2D convolution operation into element-wise multiplication manipulation (EWMM) operation to reduce the computational complexity. In Winograd domain, multiplications of the elements in a constant transformation matrix are transformed to addition and shift operations, while implementing the addition and shift operations by logic units such as look-up-tables (LUTs) and flip-flops (FFs) on the FPGA should incur a lower computational cost. Several reported implementations [23,24] have demonstrated higher performance through deploying the Winograd-transformed common convolutional layers on FPGAs. To the best of our knowledge, this is the work to target extending the fast Winograd algorithm to the implementation of the transposed convolution layers of GANs on FPGAs.
This paper makes the following contributions:
  • We present a novel dataflow exploration, so-called Wino-transCONV, which eliminates all the computations involving 0 values and then implements the transposed convolution operation through adding the DECOMPOSITION and REARRANGEMENT stages in a regular Winograd-transformed convolution dataflow. This dataflow optimization allows a significant reduction in computational complexity.
  • We propose a custom architecture for implementing transposed convolution layers efficiently by mapping the multiple-stage Wino-transCONV dataflow to FPGA device with pre- and post-processing in place. The design structures include the processing unit and Buffer operating in a combined pipelined and parallel fashion.
  • We devise the memory parallelism-aware partition to achieve efficient data access in the paper. Meanwhile, the optimal hardware-based design space is also explored by analyzing the efficiency in resource allocations and the performance in computational executions.
  • Several state-of-the-art GANs are verified on Xilinx FPGA devices by employing the proposed approaches in this paper.
The rest of this paper is organized as follows. Section 2 provides a brief description of some concepts regarding the fast Winograd algorithm and transposed convolution.The dataflow exploration is also highlighted in this section. Section 3 presents the custom architecture design optimized and implemented on FPGAs. Section 4 discusses the experimental verification results. Section 5 concludes this paper.

2. Dataflow Exploration

2.1. Transposed Convolution Dataflow Basics

The generator component of GANs features taking noise as input and generating samples, which involves a vast amount of transposed convolution operations. Figure 1 illustrates a representative data processing flow with regard to the Generative model of a GAN used for large-scale scene understanding challenge (LSUN) scene modeling [4]. Four layers of transposed convolutions (alias for fractionally-strided convolutions) are connected in series to convert the random noise representations into a high-resolution image. This paper is interested in exploring how to resource-efficiently boost the processing capabilities of implementing transposed convolution layers on FPGAs.
Similar to a general convolutional layer, a transposed convolution layer carries out the feature generation by applying N groups of the filters (each of the groups owning C×K×K filters) to C channels of the two-dimensional input feature maps (inFM, C×W×H) and then outputting N channels of the two-dimensional output feature maps (outFM, N×2W×2H), as shown in Figure 2. As detailed in Figure 3, transposed convolution can be mapped into the conventional convolution dataflow, after the inFM is inserted and padded with zeros where appropriate to obtain the expanded input feature map (EX-inFM).

2.2. Winograd Transformation Basics

As shown in the equation below, the 2D convolution can be transformed in the fast Winograd algorithm [25].
OUT = A T · ( G · F · G T ) ( B T · IN · B ) · A
Suppose that: IN has a size of n×n (n = m + r - 1); OUT has a size of m×m; F has a size of r×r; and “⊙” symbolizes an Element-Wise Matrix Multiplication (EWMM).
Both transformation matrices, G and B, are applied to, respectively, convert the weight filter ( F ) and the input feature map ( IN ) to the Winograd domain first. Then, in the Winograd domain, the two results are multiplied befor their outcome is further converted back by the third transformation matrix, A, to obtain the output feature map OUT. In one example case, in which m = 2 and r = 3, the Winograd transformation matrices A T , B T , and G are defined as follows:
B T = 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 , G = 1 0 0 1 2 1 2 1 2 1 2 1 2 1 2 0 0 1 , A T = 1 1 1 0 0 1 1 1

2.3. Wino-transCONV Dataflow Exploration

As discussed above, our purpose is to remove void operations and reduce computational complexity. Foremost, we present DECOMPOSITION processing to eliminate void operations. As exhibited in Figure 4, there exist four (2×2) computing patterns for a 5×5 sized filter sliding up, down, left, and right over a 6×6 sized tile-window of the EX-inFM for operations. Specifically, the upper-left computing pattern in Figure 5 correspondingly generates the green-colored grids (also denoted with “×”) for the outFM, as depicted in Figure 5a and  Figure 6. For the three other computing patterns, the same principle is applied to generate pink, blue and orange colored grids as, respectively, shown in Figure 5b–d. Those 25 grids ( f 0 4 , 0 4 ) belonging to the filter window are divided into and distributed across the four sub-filters with the irregular numbers of non-zero values (9+6+6+4). Figure 5 illustrates the detailed evolution dissolving a transposed convolution into four equivalent convolutions during the DECOMPOSITION process. More clearly, we pick the non-zero values of the filter and then squeeze the sparse matrix to the dense matrix. This way, one transposed convolution processing task over the 5×5 sized filters can be distributed into the four common convolution subroutines operated with smaller 3×3 sized filters.
Subsequently, the standard Winograd algorithm is possibly applied to implement the four general convolutions subroutines to reduce computational cost. It is noted that Figure 5 demonstrates the effectiveness of the offered data compression pre-processing for exploring the application of fast Winograd algorithm, when the filter is taken on the route of picking and squeezing for the minimum operations with inFM*. This matches the fact that, for an effective transformation, those conventional convolutions with the core size not exceeding 3×3 [23,24] are required by the execution of the fast Winograd algorithm.
Eventually, the four intermediate outputs in Figure 6 are alternately rearranged into the final outFM as necessary for the post-processing shown in Figure 5.
An overview of the provided Wino-transCONV dataflow is exhibited in Figure 7. With the exception of the standard fast Winograd algorithm ( S 2 S 4 ), the two new stages, namely DECOMPOSITION (S1) and REARRANGEMENT (S5), are involved in this paper. A detailed explanation for DECOMPOSITION is given above (cf. Figure 4 and  Figure 5). Particularly during the processing of S1, the complete filter window with a size of K×K, which slides over the (n+1)×(n+1) sized tile-window of inFM, is split into four effective sub-filter windows. Next, each of those four effective sub-filter windows is operated on its corresponding sub-inFM window pattern. The processing of S5 is relatively simple, as four m × m sized intermediate output patterns are produced after S4 and alternately rearranged into one 2 m×2 m sized outFM. According to the standard fast Winograd algorithm, S2 implements matrix transformations for both the input feature map and the filter, while S3 implements EWMMs and S4 implements matrix transformations for the output feature map.
The computational complexity of Wino-transCONV dataflow can be measured via the amount of the multiplication operands required to occupy the DSP resources on an FPGA device. For quantitative estimation, the following equations are derived:
M u l t D i r e c t C O N V = 2 H 1 × 2 W 1 × K × K
and
M u l t D i r e c t C O N V e f f = H × W × K × K
Here, M u l t D i r e c t C O N V represents the number of multipliers needed for the convolution descendent from a direct transformation of the transposed convolution [4] when a K×K sized filter is applied on a W×H sized inFM. M u l t D i r e c t C O N V e f f corresponds to the number of multipliers needed after a further removal of all the invalid operations [17,18,19,20,21].
For our Wino-transCONV dataflow, the number of multipliers required may be determined as follows simultaneously.
M u l t W i n o t r a n s C O N V = 4 · H ( n m ) + 2 m · W ( n m ) + 2 m · n 2
Table 1 lists some comparison analysis results for the computing resource usage deemed among different acceleration platforms. In the table, the terms mult, add, and total_equiv_add denote the respective numbers of multiplications, additions, and  total equivalent additions thus calculated. Without loss of generality, an L bit-width (fixed point) multiplication can be equivalently dissolved into L times the same bit-width additions. In this analysis, L = 16 is assumed. In Table 1, the Wino-transCONV dataflow results in the minimized multiplications through being replaced with reasonably increased additions. Thus, we advantageously trade the DSP resources with the LUT-plus-FF resources, which should be abundantly available nowadays on FPGAs. In this way, it should deliver a higher degree of implementation parallelism than the prior studies. In terms of the normalized factor, the Wino-transCONV approach reduces the number of operations approximately by 70–80%, compared to the Direct-CONV. It also requires fewer resources than Direct-CONV-eff by almost one third. Further referring to Table 1, a close examination suggests that the transforming properties associated with the Wino-transCONV should not be influenced by the size of inFM, although they exert the reduction effect more prominently with 5 × 5 filters than 4 × 4 ones.

3. Design and Implementation

3.1. Architecture-Wise Optimization

Figure 8 illustrates the overall custom architecture design for the proposed dataflow exploration. In the figure, numerous datasets are involved, including inFMs, filters, and outFMs, all in batches to transport between on- and off-chip via, e.g., the AXI-Stream interface connection provided by the FPGA device. To overlap the computation time and data transfer time, the double line buffer [23] is adopted to realize ping-pang data exchange operations in this paper. A processing unit (PU) is specifically designed to accommodate the execution procedure, as specified in Figure 8 for a common transposed convolution operation. Then, Multiple PUs will be formed in an array to complete the entire Wino-transCONV dataflow in parallel. A tile-window of the inFM would be taken from the line buffer and then subsequently sent to a relevant PU along with a filter, while the PU generates the result to an outFM. As  detailed in Figure 8, each of those PUs consists of a DECOMPOSITION pre-processing module, a Winograd Processing Element (Wino-PE) module, and a REARRANGEMENT post-processing module, all being mapped into DSPs or LUT-register resources on FPGA, as exhibited in Figure 9.
To raise the processing capabilities at the architecture level, this paper investigates some possible implementation strategies for optimally balancing various design conditions such as hardware parallelism vs. network performance. We have observed that the transposed convolution in the algorithm can tap into two kinds of concurrent executions, namely the parallel processing among FMs and inside an FM [26]. Moreover, pipeline is regarded as an indispensable means that could possibly be taken to lift up the performance of an accelerator system. The strategies of inter-PU parallelism, intra-PU parallelism, and intra-PU pipeline are used for balancing the various conditions such as parallelism, peak performance, and resource consumption as follows:
  • Inter-PU parallelism: In the design, each PU is accountable for processing the data from one of the C channels of inFMs to one of the N channels of outFMs. Suppose that P C and P N denote parallel undertakings of inFMs and outFMs, respectively. Therefore, there are in total ( P C × P N ) PUs to execute their individual operations in parallel.
  • Intra-PU parallelism: According to Figure 7, the function of Winograd processing inside a single PU is responsible for sequentially processing four pairs of the decomposed data, i.e., (sub-inFMs and sub-filters). Nevertheless, those four pairs can also be individually operated upon in parallel. Thus, the operational speed is improved, although at the expense of additional DSP blocks and programable logic resources being needed. It should be conceded that a single PU having consumed excessive DSP blocks would in practice result in the reduction to the degree of inter-PU parallelism, which must fall towards a smaller measure in terms of the number of ( P C × P N ). This is because the total number of DSP resources available on an FPGA device is always capped.
  • Intra-PU Pipeline: In a PU structure, Steps S–S4 can be effectively pipelined according to the dataflow of Wino-transCONV given in Figure 7 except for S1 and S5. This is because the DECOMPOSITION (S1) and the REARRANGEMENT (S5) for those four pairs of data (sub-inFMs and sub-filters) cannot share one common set of hardware on a time division multiplexing basis.

3.2. Processing Unit Detail vs. Intra-PU Parallelism & Pipeline

Figure 10 describes a design structure for the PU. The programmable logic resources abundantly available in FPGA are utilized to execute all the matrix transformations (in the Wino-PE module), DECOMPOSITION processing, and REARRANGEMENT processing. The values of matrices (i.e., A, B, and G) in matrix transformations are computed offline and they normally take simple constants such as +1, −1, and  1 2 , while both DECOMPOSITION and REARRANGEMENT only involve the operations regarding data formatting.
Element-wise matrix multiplication in the Wino-PE is the only module that is performed by the DSP blocks in the form of MAC units. Assuming it is denoted as the number of DSP (MAC) blocks required to achieve such EWMM in a PU, necessitating for execution in parallel and, further, one DSP block carries out fixed point multiplication in a bit-width of on FPGA device, to exercise the maximum parallelism, ε = 4 × n × n × ( χ η ) DSP blocks would be required to operate, where χ symbolizes the original bit-width dictated by the algorithm itself. In this work χ and η and are specifically chosen to be the same and equal to 16 bits (considering an elementary DSP unit as 18b × 25b multiplier embedded in FPGA).
It is preliminarily emphasized with regard to the intra-PU parallelism and pipeline in Section 3.1 that, on the one hand, there exist six possible configurations of concurrency for a typical instance where n = 6, i.e.,  ε ⊆{144, 72, 36, 18, 9, 3}. As exhibited in Table 2, the larger ε is, the fewer cycles are required to complete the operations, which indicates that the latency becomes shorter over a single PU. As a result, more EWMM operations would be conducted in concurrency, hitherto increasing the overall processing throughput.
On the other hand, the pipeline technique is applied in conjunction with a parallel strategy. The timing diagrams for a single PU with four typical values are given in Figure 11. They demonstrate a coherent parallel–pipeline scheme for executing all the necessary operations in PU. Actually, the actual value of ε should have impact on the initiation interval and the interval latency (II and IL [27,28]) as far as the pipeline design considered. II P U and IL P U can be estimated referring to the above analysis:
I I P U = 4 n 2 ε · I I s , I L P U = 4 n 2 ε 1 I I s + I L s
where II S and IL S are the values of II and IL @ ε = 4 n 2 supposing II S = 1 cycles while IL S = 5 cycles in Figure 11 for simplicity, which are denoted as the standard reference measure. II S and IL S are further utilized to explore the design space in Section 3.4.
The correlation regarding operational performance vs. ε is characterized on the Xilinx ZCU102 platform and evaluated with Xilinx Tool. As proposed in Figure 12, the processing performance in terms of Giga Operations Per Second (GOPS) goes up linearly with ε , while the energy efficiency denoted as GOPS/W somehow increases logarithmically with ε . This means that, although the processing performance does proportionally increase with the number of DSP blocks working in parallel, the pace to raise the energy efficiency by aligning more DSP blocks in concurrency may gradually slow down with ε growing larger. The reason may be attributed to the fact that a high degree of parallelism may cause lengthy and excessive interconnect wires on FPGA device and, in such conditions, the ratio of the DSP over the whole implementation with regard to power consumption would also gradually go up, typically from 1% (when ε = 3) to 40% (when ε = 144).
Based on inter-PU parallelism and intra-PU parallelism, the total number of DSP blocks required to realize all the ( P C × P N ) PUs in an FPGA may be predicted by:
n u m _ D S P = ε × P C × P N

3.3. Memory Sharing—Access and Partition

To have memory availble to be accessed, a parallelism-aware partition technique is taken into consideration. The on-chip data of inFMs, filters, and outFMs can be described as respective multi-dimensional matrices (Mats).
In principle, the data in a relevant Mats are partitioned into a certain number of segments; thus, they can be accessed in parallel to coordinate the parallel operations required. Table 3 gives the partition explorations of the inFMs, outFMs, and  filters, all of which are subject for possible concurrent access in order to maximize the parallelism in the computation. Table 3a estimates the number of segments in line for the parallel access as well as the size of such a segment for each dimension (dim) in the Mat. In addition, it gives the total memory banks hence required and the volume of each memory bank specified for a layer implementation. It is noted that the data belonging to one segment are the minimum dataset necessarily arranged for serial access. More clearly, Figure 13 illustrates the process of partitioning the memory requirements into a group of concurrently accessible memory segments. The benefit of having this memory partition measure in place is to enable more parallel operations and hence increase the processing performance as well as the energy efficiency.
Two specification examples of implementation are presented in Table 3b,c based on the Xilinx FPGA device integrated into the ZCU102 board. Here, there are a total of 1824 18K BRAM banks available for use. In line with our method, the numbers of BRAMs needed in the partition technique are, for instance, 1728 and 1440, respectively, for realization of the second layers of DCGAN and EB-GAN. In practice, to fully exploit the multi-port features offered by the BRAM in FPGA, it is possible to have two data segments packed into one single BRAM bank through a true dual-port arrangement, provided that such data segments were properly fitting. In comparison to Table 3b,c, the total number of BRAM banks needed should hence be halved.
According to Table 3, we can estimate the number of BRAM banks required as follows:
n u m _ B R A M = α i n P C × m + n + 2 × ( n + 1 ) i n p u t + α o u t 2 × P N × 2 m × 2 m o u t p u t + α f 2 × P N × P C × K 2 f i l t e r
Here, α i n , α o u t , and  α f mean that α * BRAM banks are required if one single BRAM bank does not have enough capacity to store the data for serial access (see Figure 13). α i n , α o u t , and  α f are expressed as follow:
α i n = i = 0 i = 2 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ i n F M ) dim i i = 0 i = 2 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ i n F M ) dim i V L V L α o u t = i = 0 i = 2 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ o u t F M ) dim i i = 0 i = 2 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ o u t F M ) dim i V L V L α f i l t e r = i = 0 i = 3 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ f i l t e r ) dim i i = 0 i = 3 ( s i z e _ o f _ t h e _ s e g m e n t _ i n _ f i l t e r ) dim i V L V L
Specifically, V = 18K and L=16 in this paper.

3.4. Design Space Exploration

Among various FPGA devices, the density of their processing resources available, such as DSPs, BRAMs, LUTs, and Flip-Flops, differs in combinations. The number of DSP blocks and BRAM banks required is predicted in Section 3.2 and  Section 3.3, respectively. Notably, the bandwidth bottleneck emerges when the data processing time is not well matched to that of the data transfer, hence compromising the peak performance. In the design space specified by the FPGA device parameters, we need to find ways of acquiring optimal solutions under the constraints of the algorithm parameters.
Balancing between the computation and the transfer times is considered in this paper as well, especially when it is taken to process C channels of W×(n+1)inFMs and finally output 2W×2m outFMs, as expressed in Equations (10)–(12).
T i _ t r a n s f e r = 16 × ( m + 1 ) × W × C A c h i e v e d B a n d w i d t h T o _ t r a n s f e r = 16 × 2 m × 2 W × N A c h i e v e d B a n d w i d t h T f _ t r a n s f e r = 16 × C × N × K 2 A c h i e v e d B a n d w i d t h
T t r a n s f e r = T i _ t r a n s f e r + T o _ t r a n s f e r + T f _ t r a n s f e r
Here, T i _ t r a n s f e r , T o _ t r a n s f e r , and  T f _ t r a n s f e r are the respective transferring times of the inFMs, outFMs, and filters. Bandwidth is the device constraint provided by FPGA.
T c o m p u t e r = W m + 1 × C P C × N P N × I I P U + I L P U × 1 1 f r e q f r e q
where II P U and IL P U are characterized in Equation (6).
Our goal is to find the minimal T c o m p u t e r under the premise of T c o m p u t e r T t r a n s f e r since the peak performance must match the bandwidth. { P C , P N , ε , m} are unknown parameters to be explored. In Equation (6), II S and IL S can be obtained via a few small-scale experiments. {W, C, N, K} are parameters relevant to the transposed convolution while {freq, Achieved, and Bandwidth} are related to the FPGA hardware. In this paper, Algorithm 1 is devised to explore the optimal solution of { P C , P N , ε , m} based on the above analysis.
Algorithm 1 : Design space exploration .
  • Require: T : { W C K N } ,
  •       F : { f r e q A c h i e v e d B a n d w i d t h I I s I L s } ,
  •       F : { A v a i l a b l e D S P A v a i l a b l e B R A M }
  • Ensure: {P C   P N    ε   m}
  • functionExplore_minTime( T , F )
  •    i n i t T m i n = A N u m b e r L a r g e E n o u g h
  •    i n i t O p t i m i z a t i o n _ p a r a m e t e r [ ] = { 0 , 0 , 0 , 0 }
  •    i n i t ε _ t a b l e [ 2 ] [ ] = { { 144 , 72 , 36 , 18 , 9 , 3 } , { 64 , 32 , 16 , 8 , 4 , 2 } }
  •    i n i t m _ m a p [ 2 ] = { 4 , 2 }
  •   for each i n d e x i n { 0 , 1 } do
  •      m m _ m a p [ i n d e x ]
  •      I N b u f f e r ( m + n + 2 ) × ( m + 1 )
  •      O U T b u f f e r 8 ( m × m )
  •      F I L T E R b u f f e r 2 ( K × K )
  •     for e a c h ε i i n ε _ t a b l e [ i n d e x ] do
  •        P C P N A v a i l a b l e D S P B l o c k s ε i
  •       for each pair of {P C ,P N } in results of Factorization(P C P N ) do
  •         if P C × I N b u f f e r + P N × O U T b u f f e r + P C × P N × F I L T E R b u f f e r
  •                            < = A v a i l a b l e B R A M then
  •            T c o m p u t e r E q u a t i o n ( 6 ) ( 12 )
  •            T t r a n s f e r E q u a t i o n ( 10 ) ( 11 )
  •           if T c o m p u t e r < = T t r a n s f e r then
  •              T c o m p u t e r T t r a n s f e r
  •           end if
  •            T t o t a l _ c o m p u t e r T c o m p u t e r × H m + 1
  •           if T t o t a l _ c o m p u t e r < T m i n then
  •              T m i n T t o t a l _ c o m p u t e r
  •              O p t i m i z a t i o n _ p a r a m e t e r { P C P N ε m }
  •           end if
  •         end if
  •       end for
  •     end for
  •   end for
  •   return O p t i m i z a t i o n _ p a r a m e t e r
  • end function

4. Experiment Verification

4.1. Experimental Cases for GANs

The design configurations for some of its transposed convolution layers regarding seven typical GAN models are listed in Table 4. In the table, the label #num denotes an order of the layer in the network. For networks such as DCGAN [4], Disco-GAN [5], Art-GAN [6], GP-GAN [7], and EB-GAN [8], they are mainly applied for the purpose of synthesizing images, while the others such as 3D-ED-GAN [9] and 3D-GAN [10] fulfill the tasks of generating 3D object.

4.2. Experimental Setup

To evaluate our design approach, those state-of-the-art transposed convolution layers of GANs were tested on the Xilinx FPGA platform with Vivado HLS (v2018.2). HLS provides abundant optimization directives for pipeline, parallelism, and memory partition by adding #pragma to the C/C++ code. The RTL representation of the design in terms of the Verilog HDL code can be exported as a Vivado’s IP core after running C Synthesis and C/RTL Co-simulation. Finally, the Vivado Tool synthesizes the exported RTL codes and records the design specifics in the report file. In addition, the XPower analyzer tool integrated into Vivado performs the power estimation. Two Xilinx devices were adopted in this experiment: XCZU9EG and XC7Z045. They were integrated into the ZCU102 board and ZC706 board, respectively, together with the ARM core, and offer high-speed serial connectivity taking advantage of integrated AXI IP.
We implemented the networks in Table 4 using our techniques. Table 5 delivers the parameters for FPGA devices in our implementations.

4.3. Experimental Results

In this subsection, our experimental results are reported. We adopt the previous view [18] about the computation means of GOP of transposed convolution. Therefore, the processing capability of our implementation is defined by Equation (13):
G O P S = 2 × C × W × H × N × K 2 T p r e p a r e + T t o t a l _ c o m p u t e r
where T p r e p a r e denotes the time of loading the first (n+1) rows of inFMs and the first batch of filters into on-chip BRAM banks.
Table 6 shows the experimental results in terms of performance and power as well as resource utilization. We also provide avg GOPS and avg DSP Efficiency. In Table 7, we compare the prior implementations, showing that our accelerator yields 15× (up to 21×) increase in DSP efficiency over prior work [18]. Actually, neither the work of Zhang [18] nor GNA [17] implements real-life GAN models. Moreover, GNA’s partial study on transposed convolution layers focuses on the bit-width flexibility optimization based on TSMC 28nm ASIC. The meanings of GOPS given by Lu [23] and Zhang [13] differ from ours since they implemented the general convolutional neural network called AlexNet [29].
To further compare with prior work that implements real-life GAN models, we directly mapped the transposed convolution to general convolution utilizing the optimized FPGA-based conventional accelerator as the baseline, which is the same as that employed by FlexiGAN-FPGA [20]. Figure 14 records the speedup (GOPS) with our work and prior work [20] vs. Conv-baseline separately. We produce 8.6× (up to 11.7×) improvement in processing throughput over the Conv-baseline.

5. Conclusions

To address the two issues of having ineffective operations and being computationally intensive inherently when implementing transposed convolution layers of GANs on FPGAs, we present the novel Wino-transCONV dataflow as well as its corresponding hardware architecture design. In this work, the distinct memory partition technique and the hardware-based design space are also explored. Our final implementations of seven state-of-the-art GANs achieve an overall performance of 639.2 GOPS on the Xilinx ZCU102 platform and 162.5 GOPS on the VC706 platform. The experiment results also show that our accelerator design yields 21× improvement in DSP efficiency over other prior works. In addition, in comparison to the best-known work, which delivers 2.2× higher performance than the optimized conventional accelerator baseline, the proposed design achieves 8.6× (up to 11.7×) increase in processing throughput over the Conv-baseline.

Author Contributions

Investigation, X.D. and N.M.; methodology, X.D. and H.-G.Y.; software, X.D.; validation, X.D., Z.H. and Y.J.; writing–original draft preparation, X.D.; funding acquisition, H.-G.Y.; resources, H.-G.Y.; supervision, H.-G.Y., Y.J., and Z.H.; writing—review and editing, H.-G.Y. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported jointly by the National Natural Science Foundation of China under Grants 61876172 and 61704173 and the Major Program of Beijing Science and Technology under Grant Z171100000117019.

Acknowledgments

The authors would like to thank Yuanqiang Li and Di Kong for their beneficial suggestions.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Zhang, Y.; Pezeshki, M.; Brakel, P.; Zhang, S.; Laurent, C.; Bengio, Y.; Courville, A. Towards End-to-End Speech Recognition with Deep Convolutional Neural Networks. In Proceedings of the International Symposium on Computer Architecture (ISCA), Seoul, Korea, 8–22 June 2016; pp. 410–414. [Google Scholar]
  2. Goodfellow, I.J.; Pouget-Abadie, J.; Mirza, M.; Xu, B.; Warde-Farley, D.; Ozair, S.; Courville, A.; Bengio, Y. Generative Adversarial Networks. Adv. Neural Inf. Process. Syst. 2014, 3, 2672–2680. [Google Scholar]
  3. Mirza, M.; Osindero, S. Conditional Generative Adversarial Nets. arXiv 2014, arXiv:1411.1784. [Google Scholar]
  4. Radford, A.; Metz, L.; Chintala, S. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv 2015, arXiv:1511.06434. [Google Scholar]
  5. Taeksoo, K.; Moonsu, C.; Hyunsoo, K.; Lee, J.K.; Kim, J. Learning to discover cross-domain relations with generative adversarial networks. In Proceedings of the 34th International Conference on Machine Learning (ICML), Sydney, Australia, 6–11 August 2017; Volume 70, pp. 1857–1865. [Google Scholar]
  6. Tan, W.R.; Chan, C.S.; Aguirre, H.E.; Tanaka, K. ArtGAN: Artwork synthesis with conditional categorical GANs. In Proceedings of the 2017 IEEE International Conference on Image Processing (ICIP), Beijing, China, 17–20 September 2017; pp. 3760–3764. [Google Scholar]
  7. Wu, H.; Zheng, S.; Zhang, J.; Huang, K. GP-GAN: Towards Realistic High-Resolution Image Blending. In Proceedings of the 27th ACM International Conference on Multimedia (ACMMM), Nice, France, 21–25 October 2019; Association for Computing Machinery: New York, NY, USA, 2019; pp. 2487–2495. [Google Scholar]
  8. Zhao, J.; Mathieu, M.; Lecun, Y. Energy-based Generative Adversarial Network. In Proceedings of the 5th International Conference on Learning Representations (ICLR), Toulon, France, 24–26 April 2017; pp. 100–109. [Google Scholar]
  9. Wang, W.; Huang, Q.; You, S.; Yang, C. Ulrich Neumann. Shape Inpainting Using 3D Generative Adversarial Network and Recurrent Convolutional Networks. In Proceedings of the 2017 IEEE International Conference on Computer Vision (ICCV), Venice, Italy, 22–29 October 2017; pp. 2317–2325. [Google Scholar]
  10. Wu, J.; Zhang, C.; Xue, T.; Freeman, B.; Josh, T. Learning a Probabilistic Latent Space of Object Shapes via 3D Generative-Adversarial Modeling. In Proceedings of the Conference and Workshop on Neural Information Processing Systems (NIPS), Barcelona, Spain, 5–10 December 2016; pp. 82–90. [Google Scholar]
  11. Wei, W.; Yu, C.H.; Zhang, P.; Chen, P.; Wang, Y.; Hu, H.; Liang, Y.; Cong, J. Automated Systolic Array Architecture Synthesis for High Throughput CNN Inference on FPGAs. In Proceedings of the 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC), Austin, TX, USA, 18–22 June 2017; pp. 1–6. [Google Scholar]
  12. DiCecco, R.; Lacey, G.; Vasiljevic, J.; Chow, P.; Taylor, G.; Areibi, S. Caffeinated FPGAs: FPGA Framework for Convolutional Neural Networks. In Proceedings of the 2016 International Conference on Field-Programmable Technology (FPT), Xi’an, China, 7–9 December 2016; pp. 265–268. [Google Scholar]
  13. Zhang, C.; Li, P.; Sun, G.; Guan, Y.; Xiao, B.; Cong, J. Optimizing fpga-based accelerator design for deep convolutional neural networks. In Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, CA, USA, 22–24 February 2015; ACM: New York, NY, USA, 2015; pp. 161–170. [Google Scholar]
  14. Ma, Y.; Cao, Y.; Vrudhula, S.; Seo, J. Optimizing the Convolution Operation to Accelerate Deep Neural Networks on FPGA. IEEE Trans. Very Large Scale Integr. Syst. 2018, 26, 1354–1367. [Google Scholar] [CrossRef]
  15. Chen, T.; Du, Z.; Sun, N.; Wang, J.; Wu, C.; Chen, Y.; Temam, O. A High-Throughput Neural Network Accelerator. IEEE Micro 2019, 35, 24–32. [Google Scholar]
  16. Liu, Z.; Chow, P.; Xu, J.; Jiang, J.; Dou, Y.; Zhou, J. A Uniform Architecture Design for Accelerating 2D and 3D CNNs on FPGAs. Electronics 2019, 8, 65. [Google Scholar] [CrossRef] [Green Version]
  17. Yan, J.; Yin, S.; Tu, F.; Liu, L.; Wei, S. GNA: Reconfigurable and Efficient Architecture for Generative Network Acceleration. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2018, 37, 2519–2529. [Google Scholar] [CrossRef]
  18. Zhang, X.; Das, S.; Neopane, O.; Kreutz-Delgado, K. A Design Methodology for Efficient Implementation of Deconvolutional Neural Networks on an FPGA. arXiv 2017, arXiv:1705.02583. [Google Scholar]
  19. Yazdanbakhsh, A.; Falahati, H.; Wolfe, P.J.; Samadi, K.; Kim, N.S.; Esmaeilzadeh, H. GANAX: A unified MIMD-SIMD acceleration for generative adversarial networks. In Proceedings of the 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), Los Angeles, CA, USA, 2–6 June 2018; pp. 650–661. [Google Scholar]
  20. Yazdanbakhsh, A.; Brzozowski, M.; Khaleghi, B.; Ghodrati, S.; Samadi, K.; Kim, N.S.; Esmaeilzadeh, H. FlexiGAN: An End-to-End Solution for FPGA Acceleration of Generative Adversarial Networks. In Proceedings of the 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Boulder, CO, USA, 29 April–1 May 2018; pp. 65–72. [Google Scholar]
  21. Chang, J.W.; Kang, K.W.; Kang, S.J. An Energy-Efficient FPGA-based Deconvolutional Neural Networks Accelerator for Single Image Super-Resolution. IEEE Trans. Circuits Syst. Video Technol. 2020, 30, 281–295. [Google Scholar] [CrossRef] [Green Version]
  22. Chen, Y.-H.; Krishna, T.; Emer, J.S.; Sze, V. Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks. IEEE J. Solid-State Circuits 2017, 52, 127–138. [Google Scholar] [CrossRef] [Green Version]
  23. Lu, L.; Liang, Y.; Xiao, Q.; Yan, S. Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs. In Proceedings of the 2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa, CA, USA, 30 April–2 May 2017; pp. 101–108. [Google Scholar]
  24. Aydonat, U.; O’Connell, S.; Capalija, D.; Ling, A.C.; Chiu, G.R. An OpenCL™ Deep Learning Accelerator on Arria 10. In Proceedings of the ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA), Monterey, CA, USA, 22–24 February 2017; pp. 55–64. [Google Scholar]
  25. Lavin, A.; Gray, S. Fast Algorithms for Convolutional Neural Networks. In Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 27–30 June 2016; pp. 4013–4021. [Google Scholar]
  26. Guo, K.; Zeng, K.; Yu, J.; Wang, Y.; Yang, H. A Survey of FPGA Based Neural Network Accelerator. arXiv 2017, arXiv:1712.08934. [Google Scholar]
  27. Xilinx, Inc. UG871-Vivado High Level Synthesis Tutorial; Xilinx: San Jose, CA, USA, 3 April 2013; pp. 120–130. [Google Scholar]
  28. Xilinx, Inc. UG902 Vivado High Level Synthesis; Xilinx: San Jose, CA, USA, 20 December 2018; pp. 6–8. [Google Scholar]
  29. Krizhevsky, A.; Sutskever, A.; Hinton, G.E. ImageNet Classification with Deep Convolutional Neural Networks. In Proceedings of the 25th International Conference on Neural Information Processing Systems (NIPS), Lake Tahoe, NV, USA, 3–8 December 2012; pp. 1097–1105. [Google Scholar]
Figure 1. DCGAN: An actual GAN generator for LSUN scene modeling.
Figure 1. DCGAN: An actual GAN generator for LSUN scene modeling.
Electronics 09 00286 g001
Figure 2. Data processing flow of transposed convolution layer.
Figure 2. Data processing flow of transposed convolution layer.
Electronics 09 00286 g002
Figure 3. An illustration of the data transformation flow through inserting and padding with zeros.
Figure 3. An illustration of the data transformation flow through inserting and padding with zeros.
Electronics 09 00286 g003
Figure 4. An illustration of picking the effective filter values in alignment to the non-zero grids in inFM.
Figure 4. An illustration of picking the effective filter values in alignment to the non-zero grids in inFM.
Electronics 09 00286 g004
Figure 5. An illustration to the data operations in dissolving a transposed convolution into four equivalent convolutions during the DECOMPOSITION processing.
Figure 5. An illustration to the data operations in dissolving a transposed convolution into four equivalent convolutions during the DECOMPOSITION processing.
Electronics 09 00286 g005
Figure 6. The data REARRANGEMENT process.
Figure 6. The data REARRANGEMENT process.
Electronics 09 00286 g006
Figure 7. An algorithmic chart for the proposed Wino-transCONV dataflow.
Figure 7. An algorithmic chart for the proposed Wino-transCONV dataflow.
Electronics 09 00286 g007
Figure 8. An illustration of the Wino-transCONV design architecture.
Figure 8. An illustration of the Wino-transCONV design architecture.
Electronics 09 00286 g008
Figure 9. The architecture-to-implementation mapping on FPGA for a PU.
Figure 9. The architecture-to-implementation mapping on FPGA for a PU.
Electronics 09 00286 g009
Figure 10. Design of processing unit.
Figure 10. Design of processing unit.
Electronics 09 00286 g010
Figure 11. Timing diagrams of four typical parallel implementations for S1–S5 operations in a PU.
Figure 11. Timing diagrams of four typical parallel implementations for S1–S5 operations in a PU.
Electronics 09 00286 g011
Figure 12. Characterization of performance vs. ε for a PU design.
Figure 12. Characterization of performance vs. ε for a PU design.
Electronics 09 00286 g012
Figure 13. An illustration of memory partition.
Figure 13. An illustration of memory partition.
Electronics 09 00286 g013
Figure 14. Comparison between our work and the prior work [20] on the speedup ratio against Conv-Baseline.
Figure 14. Comparison between our work and the prior work [20] on the speedup ratio against Conv-Baseline.
Electronics 09 00286 g014
Table 1. Computational resource usage analysis.
Table 1. Computational resource usage analysis.
inFMFilterMethodsMum_of OperationsNormalized
(W×H)(K×K)mult (*)add (+)total_equiv_add  1
8×85×5Direct-CONV [4]5625540095,4001
Direct-CONV-eff [17,18,19,20,21]1600153627,1360.284
Wino-transCONV(m = 4)57610,04819,2640.201
Wino-transCONV(m = 2)1024492821,3120.223
4×4Direct-CONV [4]3600337560,9751
Direct-CONV-eff [17,18,19,20,21]102496019,3940.318
Wino-transCONV(m = 4)57610,04819,2640.315
Wino-transCONV(m = 2)1024492821,3120.349
16×165×5Direct-CONV [4]24,02523,064407,4641
Direct-CONV-eff [17,18,19,20,21]640061441085440.266
Wino-transCONV(m = 4)230440,19277,0560.189
Wino-transCONV(m = 2)409619,71285,2480.209
4×4Direct-CONV [4]15,37614,415260,4311
Direct-CONV-eff [17,18,19,20,21]40963840775640.297
Wino-transCONV(m = 4)230440,19277,0560.295
Wino-transCONV(m = 2)409619,71285,2480.327
64×645×5Direct-CONV [4]403,225387,0966,838,6961
Direct-CONV-eff [17,18,19,20,21]102,40098,3041,736,7040.253
Wino-transCONV(m = 4)36,864643,0721,232,8960.18
Wino-transCONV(m = 2)65,536315,3921,363,9680.199
4×4Direct-CONV [4]258064241,9354,370,9591
Direct-CONV-eff [17,18,19,20,21]65,536614401,241,0840.283
Wino-transCONV(m = 4)36,864643,0721,232,8960.282
Wino-transCONV(m = 2)65,536315,3921,363,9680.312
128×1285×5Direct-CONV [4]1,625,6251,560,600275706001
Direct-CONV-eff [17,18,19,20,21]409,600393,2166,946,8160.251
Wino-transCONV(m = 4)147,4562,572,2884,931,5840.178
Wino-transCONV(m = 2)262,1441,261,5685,455,8720.197
4×4Direct-CONV [4]1040400975,37517,621,7751
Direct-CONV-eff [17,18,19,20,21]262,144245,7604,964,3520.281
Wino-transCONV(m = 4)147,4562,572,2884,931,5840.279
Wino-transCONV(m = 2)262,1441,261,5685,455,8720.309
1 total_equiv_add = mult * L + add, where L = 16.
Table 2. Concurrency vs. throughput for EWMM (in the case of the 6 × 6 sized tile-window).
Table 2. Concurrency vs. throughput for EWMM (in the case of the 6 × 6 sized tile-window).
ε 14472361893
Cycles required to complete EWMM12481648
Table 3. Specifications of memory partition.
Table 3. Specifications of memory partition.
(Number of segments for parallel access)×(size of the segment)Total number of the Data volume defined for one memory block in
dim1dim2dim3dim4memory blocks requiredtype (= 16 bits)
inFM(m+n+2)×(1)(n+1)×[W/(n+1)](PC)×(C/ PC)(m+n+2)×(n+1)×(PC)(1)×[W/(n+1)]×(C/ PC)
outFM(4m)×(1)(2m)×(2W/2m)(PN)×(N/ PN)(4m)×(2m)×(PN)(1)×(2W/2m)×(N/ PN)
filter(PC)×(C/ PC)(2PN)×(1)(K)×(1)(K)×(1)(PC)×(2 PN)×(K) ×(K)(C/ PC)×(1)×(1)×(1)
(a)    General model
(Number of segments for parallel access)×(size of the segment)  Total number of the Data volume defined for one memory block in
dim1dim2dim3dim4memory blocks requiredtype (= 16 bits)
inFM(12)×(1)(7)×(1)(8)×(256)(12)×(7)×(8) = 6721728(1)×(1)×(256)
outFM(16)×(1)(8)×(1)(2)×(512)(16)×(8)×(2) = 256(1)×(1)×(256)
filter(8)×(256)(4)×(1)(5)×(1)(5)×(1)(8)×(4)×(5)×(5)=800(256)×(1)×(1)×(1)
(b)    Instantiation for the second layer of DCGAN
(Number of segments for parallel access)×(size of the segment)  Total number of the Data volume defined for one memory block in
dim1dim2dim3dim4memory blocks requiredtype (= 16 bits)
inFM(12)×(1)(7)×(1)(8)×(512)-(12)×(7)×(8) = 6721440(1)×(1)×(512)
outFM(16)×(1)(8)×(1)(2)×(512)-(16)×(8)×(2) = 256(1)×(1)×(512)
filter(8)×(512)(4)×(1)(4)×(1)(4)×(1)(8)×(4)×(4)×(4)=512(512)×(1)×(1)×(1)
(c)    Instantiation for the second layer of EB-GAN
Table 4. Design configurations of GANs.
Table 4. Design configurations of GANs.
GANsTransposed Convolution LayersGANsTransposed Convolution Layers
#numinputfilters#numinputfilters
#24×4×10245×5×1024×512 #24×4×5124×4×512×256
DCGAN [4]#38×8×5125×5×512×256GP-GAN [7]#38×8×2564×4×256×128
#416×16×2565×5×256×128 #416×16×1284×4×128×64
#532×32×1285×5×128×3 #532×32×644×4×64×3
#24×4×10244×4×1024×512 #24×4×4×5124×4×4×512×256
Disco-GAN [5]#38×8×5124×4×512×2563D-GAN [10]#38×8×8×2564×4×4×256×128
#416×16×2564×4×256×1283D-ED-GAN [9]#416×16×16×1284×4×4×128×64
#632×32×1284×4×128×3 #532×32×32×644×4×4×64×1
#24×4×5124×4×512×256 #24×4×20484×4×2048×1024
#38×8×2564×4×256×128 #38×8×10244×4×1024×512
Art-GAN [6]#416×16×1284×4×128×128EB-GAN [8]#416×16×5124×4×512×256
#616×16×1284×4×128×3(256×256 model#532×32×2564×4×256×128
on IMAGENET)#664×64×1284×4×128×64
#7128×128×644×4×64×64
Table 5. Parameters for devices.
Table 5. Parameters for devices.
Device ε m P C × P N
XCZU9EG144416
XC7Z04514444
Table 6. Performance and resource report.
Table 6. Performance and resource report.
GAN ModelsLayersPerformance (GOPS)GAN ModelsLayersPerformance (GOPS)
ZCU102ZC706ZCU102ZC706
#2717.2223.7 #2406.8136.6
#3915.9243.43D-GAN [10]#3536.4151.3
DCGAN [4]#41058.7254.33D-ED-GAN [9]#4627.9159.1
#5320.2133.8 #5213.787.5
avg851.8236.9 avg482.4142.8
#2544.9152.1 #2654.9161.1
#3651.8161.2 #3727.1166.3
Disco-GAN [5]#4719.4165.5EB-GAN [8]#4768.5168.5
#6252.194.5(256×256 model#5789.1169.6
avg616.1157.6on IMAGENET)#6795.9170.2
Art-GAN [6]#2406.8136.6 #7805170.5
#3536.4151.3 avg759.9168.2
#4627.9159.1Freq (MHz)200167
#6213.787.5LUT Utilization (%)9790
avg486.9145.4DSP Utilization (%)91.467
GP-GAN [7]#2406.8136.6BRAM Utilization (%)9057
#3536.4151.3Performance (GOPS)639.2*(avg)162.5*(avg)
#4627.9159.1DSP Efficiency (GOPS/DSP)0.254 (avg)0.181 (avg)
#5213.787.5Power (W)15.65.8
avg486.9145.4Energy Efficiency (GOPS/W)40.927.9
Table 7. Comparison to prior implementations.
Table 7. Comparison to prior implementations.
ModelsWorksDevicePrecisionDSPFreqGOPSGOPS/DSP
AlexNet [21][13]VX485Tfloat280010061.620.022
(Convolution)[23]ZC70616 fixed900167271.80.224
ASIC8 fixed 409.6
GAN [17](TSMC16×8 fixed 200204.8
Transposed 28 nm)16 fixed 102.4
Convolution[18]7Z02012 fixed2201002.60.012
OursZCU10216 fixed2520200639.2 *0.245 
OursZC70616 fixed900167162.5 *0.181 
* Our avg GOPS = The total GOP of GANs in Table 4/The total time occupation
 Our avg GOP/DSP = The total GOP of GANs in Table 4 /the total time occupation/DSPs

Share and Cite

MDPI and ACS Style

Di, X.; Yang, H.-G.; Jia, Y.; Huang, Z.; Mao, N. Exploring Efficient Acceleration Architecture for Winograd-Transformed Transposed Convolution of GANs on FPGAs. Electronics 2020, 9, 286. https://0-doi-org.brum.beds.ac.uk/10.3390/electronics9020286

AMA Style

Di X, Yang H-G, Jia Y, Huang Z, Mao N. Exploring Efficient Acceleration Architecture for Winograd-Transformed Transposed Convolution of GANs on FPGAs. Electronics. 2020; 9(2):286. https://0-doi-org.brum.beds.ac.uk/10.3390/electronics9020286

Chicago/Turabian Style

Di, Xinkai, Hai-Gang Yang, Yiping Jia, Zhihong Huang, and Ning Mao. 2020. "Exploring Efficient Acceleration Architecture for Winograd-Transformed Transposed Convolution of GANs on FPGAs" Electronics 9, no. 2: 286. https://0-doi-org.brum.beds.ac.uk/10.3390/electronics9020286

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop