Paper check About

DianNao: A Small-Footprint High-Throughput Accelerator for Ubiquitous Machine-Learning

ACM SIGPLAN Notices, 2014 · paper · Computer science

Designs DianNao, an accelerator for large convolutional and deep neural networks that emphasizes the effect of memory on design, performance and energy. At 65nm layout it reaches 452 GOP/s in 3.02 mm² and 485 mW, 117.87× faster than a SIMD processor.

Checked: PDF from users.cs.duke.edu, fetched 4 Oct 2026. Page numbers are those of that PDF.

9 findings

Substance The headline throughput "452 GOP/s" (abstract, introduction "496 16-bit fixed-point operations in parallel every 1.02ns, i.e., 452 GOP/s", Section 7.1 "496 ... every cycle; at 0.98GHz, this amounts to 452 GOP/s") does not equal 496 ops/cycle at 0.98 GHz, which is about 486 GOP/s.
  • p. 10 Section 7.1, para 1
    0.98GHz, this amounts to 452 GOP/s
  • p. 2 Introduction
    operations in parallel every 1.02ns, i.e., 452 GOP/s
  • p. 1 Abstract
    capable of performing 452 GOP/s
  • p. 10 Section 7.1
    at 0.98GHz, this amounts to 452 GOP/s

Only the authors can say what is right here.

Judge's note: Read on the page 1, 2 and 10 images. The text gives 452 GOP/s as the direct product of 496 ops/cycle and 0.98 GHz (1.02 ns, the critical path in Table 6). No other clock or utilisation factor is stated anywhere. 452 would need about 0.911 GHz. Only the authors can say whether the throughput or the clock is intended.

Second check: another model agreed

Report a problem with this finding
Substance Section 7.2 says "on these two types of layers [classifier and convolutional], the accelerator is on average 117.87x faster", but 117.87x matches the average over all 10 layers, pooling included.
  • p. 11 Section 7.2
    two types of layers, the accelerator is on average 117.87x
  • p. 7 Figure 16, GeoMean bar
    GeoMean
  • p. 2 Introduction
    On 10 of the largest layers found in recent CNNs and DNNs, this accelerator is 117.87x faster

Only the authors can say what is right here.

Judge's note: In Figure 16 (page 11) every SIMD/Acc bar for the CLASS and CONV layers is above about 120x, so no mean of those 7 layers can be 117.87x. The paper's own sub-averages (629.92x, 195.15x, 2.17x, 25.73x, 25.52x) give a 10-layer geometric mean of about 117.85x. The 7-layer geometric mean is about 322x. The Introduction (page 2) gives 117.87x for the 10 layers. The crop listed for page 7 shows Figure 12, not Figure 16; Figure 16 is on page 11.

Second check: another model agreed

Report a problem with this finding
Substance In Table 4 (caption "Ni = 8192, No = 256"), the last instruction's NBin address "4225024" and SB address "7864320" do not fit 8192 inputs: they correspond to the 16th 2KB input chunk and the 241st 32KB synapse load.
  • p. 9 Table 4, last instruction, NBin and SB address fields
    4225024
  • p. 9 Table 4, last instruction, SB address
    7864320
  • p. 9 Table 4 caption
    Ni = 8192

Only the authors can say what is right here.

Judge's note: Table 4 on the page 9 image shows NBin base 4194304, 2048-byte chunks and 32768-byte SB loads. The text says Ni = 8192 means 16KB of inputs, i.e. 8 chunks. The last NBin address is offset 30720, which is chunk index 15 and beyond 16KB. The SB address 7864320 is load index 240, which exceeds the 128 loads needed for 8192×256×2 bytes and lies above the input base 4194304. Both addresses would fit 16 input chunks (Ni = 16384). Only the authors can say which value is intended.

Second check: another model agreed

Report a problem with this finding
Substance Section 7.1 gives the peak as "528 operations per cycle (482 GOP/s)", but at the stated 0.98 GHz 528 ops/cycle is about 517 GOP/s.
  • p. 10 Section 7.1, para 1
    operations per cycle (482 GOP/s) for a short period
  • p. 10 Section 7.1
    528 operations per cycle (482 GOP/s)

Only the authors can say what is right here.

Judge's note: Read on the page 10 image. The ratio 482/528 implies the same unstated ~0.91 GHz clock as the 452 GOP/s figure (C014). This is the same root cause as C014 but a separate printed value.

Second check: another model agreed

Report a problem with this finding
Substance Table 6 CP row prints area "141,809 (5.69%)"; 141,809/3,023,077 is 4.69%, and the functional-block area percentages then sum to 101%.
  • p. 11 Table 6, CP row
    141,809 (5.69%)

Judge's note: Table 6 on the page 11 image confirms the printed values. All other block area percentages match their µm² values divided by 3,023,077, and the block µm² values sum exactly to 3,023,077. The printed percentage is therefore off by exactly 1 point. A rounding or denominator explanation does not fit.

Second check: another model agreed

Report a problem with this finding
Substance Table 6 power percentages for SB "105 (22.65%)", NBin "91 (19.76%)", NBout "92 (19.97%)" and AXIMUX "8 (2.65%)" are each 1 point above mW/485, and the column sums to 104%.
  • p. 11 Table 6, functional block rows, Power (%) column
    105 (22.65%)
  • p. 11 Table 6, NBin row
    91 (19.76%)
  • p. 11 Table 6, NBout row
    92 (19.97%)
  • p. 11 Table 6, AXIMUX row
    8 (2.65%)

Judge's note: Checked on the page 11 image. The block mW values sum to the 485 mW total. Dividing by 485 reproduces the NFU (27.22), CP (6.39) and Other (5.36) percentages exactly. SB, NBin, NBout and AXIMUX each come out exactly 1.00 point below the printed value. Rounding of the mW values cannot produce a uniform 1-point offset.

Second check: another model agreed

Report a problem with this finding
Substance Section 7.1 says area and power are "dominated by the buffers (NBin/NBout/SB) at respectively 56% and 60%", but in Table 6 SB+NBin+NBout area is 66.7%.
  • p. 11 Section 7.1, text below Table 6
    dominated by the buffers (NBin/NBout/SB) at respectively 56% and 60%
  • p. 11 Table 6
    1,153,814 (38.17%)
  • p. 11 Section 7.1 text
    at respectively 56% and 60%
  • p. 11 Section 7.1
    respectively 56% and 60%

Only the authors can say what is right here.

Judge's note: Checked Table 6 and the text on page 11. The buffer area share is 38.17+14.16+14.35 = 66.68%, and no grouping in the table gives 56%. The 60% power figure matches the mW values (288/485 = 59.4%). It does not match the printed percentages, which sum to 62.4% (see C017). Only the authors can say whether 56 is a slip for 66.

Second check: another model agreed

Report a problem with this finding
Reference or label Figure 14 ("Local transpose (Ky = 2, Kx = 1, Ni = 4)") is essentially blank. Only the fragments "Loa", "ky=0,", "ky=0," and an arrow are rendered, yet the text relies on it ("see Figure 14").
  • p. 8 Figure 14
    Local transpose (Ky = 2, Kx = 1, Ni = 4)

Judge's note: The full page 8 image shows the Figure 14 area empty apart from those clipped fragments, so the illustration is missing from the rendered PDF.

Second check: another model agreed

Report a problem with this finding
Reference or label Section 5.3.1 says "using the interleaving mechanism described in Section 5.2.3", but the interleaving (local transpose in NBin for pooling layers) is described in Section 5.2.2.
  • p. 9 Section 5.3.1
    interleaving mechanism described in Section 5.2.3
  • p. 9 Sec 5.3.1
    using the interleaving mechanism described in Section 5.2.3

Judge's note: On the page 8 image, Section 5.2.2 contains "Local transpose in NBin for pooling layers ... accomplished by interleaving the data in NBin". On page 9, Section 5.2.3 ("Exploiting the locality of outputs") covers dedicated registers and the circular NBout, with no interleaving.

Second check: another model agreed

Report a problem with this finding
15 minor (typos and the like; most checked by the judge only)
Wording The neuron array index order differs between figures: Figure 7 writes "neuron[yout][xout][n]" and both figures read neuron[ky + y][kx + x][i], but Figure 8 writes "neuron[xout][yout][i] = value[i] / (Kx * Ky);".
  • p. 5 Figure 7
    neuron[yout][xout][n]
  • p. 5 Figure 8
    neuron[xout][yout][i] = value[i] / (Kx * Ky);

Judge's note: Checked in the page 5 crops. Within the pseudo-code, outputs and inputs are otherwise y-first, while the pooling output is x-first. The output array could legitimately use another layout, so this is an inconsistency for the authors to resolve rather than an evident error.

Second check: another model agreed

Report a problem with this finding
Wording Section 7.1: "design is 0.85 mm2, i.e., 3.59x smaller than for Tn = 16"; 3.023/0.85 = 3.56x, and 3.59x would need about 0.842 mm².
  • p. 11 Section 7.1, last paragraph
    0.85 mm2, i.e., 3.59x smaller than for Tn = 16
  • p. 11 Section 7.1, last para
    design is 0.85 mm2, i.e., 3.59x smaller than for Tn = 16

Only the authors can say what is right here.

Judge's note: Text checked on page 11. Even at the lower rounding bound (0.845 mm²) the ratio is 3.58x, so the printed pair cannot both hold after rounding. The gap is small, and the authors may have used an unrounded area.

Second check: another model agreed

Report a problem with this finding
Typo First-page copyright block prints the DOI with a doubled prefix: "http://dx.doi.org/10.1145/http://dx.doi.org/10.1145/2541940.2541967".
  • p. 1 First-page footer
    http://dx.doi.org/10.1145/http://dx.doi.org/10.1145/2541940.2541967

Judge's note: The doubled prefix is visible in the page-1 image crop, so it is not an extraction artefact. The DOI string is malformed as printed.

Second check: none (judge only)

Report a problem with this finding
Typo Wrong indefinite article: "faster ... on average than an 128-bit SIMD core clocked at 2GHz" (should be "a 128-bit").
  • p. 2 Introduction, para 5
    age than an 128-bit SIMD core clocked at 2GHz

Judge's note: Page 2 crop shows "an 128-bit". Elsewhere the paper writes "a 128-bit" (abstract, Section 6).

Second check: none (judge only)

Report a problem with this finding
Typo In the tiling loops of Figures 5, 7 and 8 the comparison operator is typeset as an inverted exclamation mark, e.g. "for (int nnn = 0; nnn ¡ Nn; nnn += Tnn)" and "for (int yy = 0; yy ¡ Nyin; yy += Ty)".
  • p. 4 Figure 5
    nnn ¡ Nn
  • p. 5 Figures 7 and 8
    yy ¡ Nyin

Judge's note: The page images show '¡' in the grey tiling-loop lines, while the bold loops beside them show a proper '<'. This is a font-encoding error in the typeset code, not an extraction artefact.

Second check: none (judge only)

Report a problem with this finding
Typo The number of output feature maps/neurons is written Nn in Section 3 and Figures 5 and 7 ("the reuse across the Nn output feature maps") but No in Section 3.2 ("Kx×Ky×Ni×No") and in Tables 4 and 5.
  • p. 4 Section 3.2 / Figure 5
    the reuse across the Nn output feature maps
  • p. 5 Section 3.2
    Kx×Ky×Ni×No

Judge's note: The page 4 and 5 crops show both symbols, and the text layer has No in Table 4's caption and Table 5's header. No definition distinguishes the two symbols. This is a notation inconsistency only.

Second check: none (judge only)

Report a problem with this finding
Typo Wrong article in Section 3.2: "introduce an second-level tiling loop iii again" (should be "a second-level").
  • p. 4 Section 3.2, Inputs/Outputs
    introduce an second-level tiling loop
  • p. 4 Section 3.2 Inputs/Outputs
    introduce an second-level tiling loop iii again

Judge's note: Visible in the page 4 crop.

Second check: none (judge only)

Report a problem with this finding
Typo Figure 7, private-kernel statement has an unmatched closing brace mid-expression: "sum[n] += synapse[yout][xout][ky][kx][n][i]}" followed by "* neuron[ky + y][kx + x][i];".
  • p. 5 Figure 7, private kernels version
    sum[n] += synapse[yout][xout][ky][kx][n][i]}

Judge's note: The page 5 crop shows the stray '}' before the continuation line. The shared-kernel version of the same statement has no brace.

Second check: none (judge only)

Report a problem with this finding
Typo Subject–verb disagreement in Section 3.3: "the memory bandwidth of input neurons are higher than for convolutional layers".
  • p. 5 Section 3.3
    the memory bandwidth of input neurons are higher

Judge's note: Visible in the page 5 crop. Grammar only.

Second check: none (judge only)

Report a problem with this finding
Typo Section 5.1 repeats the word Figure in a pointer: "see Figures 5 and Figure 7".
  • p. 6 Section 5.1
    see Figures 5 and Figure 7

Judge's note: Visible in the page 6 crop. The pointer targets are correct; only the wording is affected.

Second check: none (judge only)

Report a problem with this finding
Typo Duplicated word in Section 7.2: "Ni = 12 for for POOL1".
  • p. 12 Section 7.2, top left
    Ni = 12 for for POOL1
  • p. 12 Section 7.2, left column
    e.g., Ni = 12 for for POOL1
  • p. 12
    t feature maps (e.g., Ni = 12 for for POOL1), combined wi

Judge's note: The page 12 image shows 'for' at the end of one line and again at the start of the next, so this is in the printed text, not an extraction artefact.

Second check: code check

Report a problem with this finding
Typo Section 7.2: "beyond 62x lays in control and scheduling overhead" should read "lies".
  • p. 12 Section 7.2
    62x lays in control and scheduling overhead
  • p. 12 Section 7.2
    beyond 62x lays in control and scheduling overhead

Judge's note: Confirmed on the page 12 image; the intransitive verb 'lies' is needed here.

Second check: none (judge only)

Report a problem with this finding
Typo Reference [21] author list reads "J.-y. Kim, S. Member, M. Kim, ...", apparently an IEEE membership designation imported as an author.
  • p. 14 Reference [21]
    J.-y. Kim, S. Member, M. Kim

Only the authors can say what is right here.

Judge's note: Rests on outside knowledge: that the cited JSSC 2010 paper has no co-author named 'S. Member'. The page 14 image shows the text as quoted.

Second check: none (judge only)

Report a problem with this finding
Typo Incomplete references: [16] "arXiv preprint arXiv: . . . , pages 1–18, 2012." and [35] "Pattern Recognition (ICPR), . . . , 2012."
  • p. 14 Reference [16]
    arXiv preprint arXiv: . . . , pages 1–18, 2012.
  • p. 15 Reference [35]
    Pattern Recognition (ICPR), . . . , 2012.

Only the authors can say what is right here.

Judge's note: The page 14 and page 15 images show literal ellipses in both entries where the arXiv identifier and venue details should be. Only the authors can supply the missing details.

Second check: none (judge only)

Report a problem with this finding
Typo Reference [42] title ends "Quasi-Specific Cores Categories and Subject Descriptors", which includes the ACM section heading.
  • p. 15 Reference [42]
    Quasi-Specific Cores Categories and Subject Descriptors
  • p. 15 Reference [42]
    Cores Categories and Subject Descriptors

Only the authors can say what is right here.

Judge's note: Rests on outside knowledge: that 'Categories and Subject Descriptors' is not part of the QsCores paper title. The page 15 image shows the text as quoted.

Second check: none (judge only)

Report a problem with this finding
Something wrong with this page, or a finding we missed?