it became computationally more signiﬁcant as we improved efﬁciency and scalability of the RNN
itself. Secondly, transferring large activation matrices between CPU and GPU required us to spend
interconnect bandwidth for CTC, rather than on transferring gradient matrices to allow us to scale
using data parallelism to more processors.
To overcome this, we wrote a GPU implementation of the CTC loss function. Our parallel implementation relies on a slight refactoring to simplify the dependences in the CTC calculation, as well
as the use of optimized parallel sort implementations from ModernGPU [5]. We give more details
of this parallelization in the Appendix.
Table 8 compares the performance of two CTC implementations. The GPU implementation saves
us 95 minutes per epoch in English, and 25 minutes in Mandarin. This reduces overall training time
by 10-20%, which is also an important productivity beneﬁt for our experiments.
4.3 Memory allocation
Our system makes frequent use of dynamic memory allocations to GPU and CPU memory, mainly
to store activation data for variable length utterances, and for intermediate results. Individual allocations can be very large; over 1 GB for the longest utterances. For these very large allocations
we found that CUDA’s memory allocator and even std::malloc introduced signiﬁcant overhead
We show that an end-to-end deep learning approach can be used to recognize
either English or Mandarin Chinese speech--two vastly different languages.
Because it replaces entire pipelines of hand-engineered components with neural
networks, end-to-end learning allows us to handle a diverse variety of speech
including noisy environments, accents and different languages. Key to our
approach is our application of HPC techniques, resulting in a 7x speedup over
our previous system. Because of this efficiency, experiments that previously
took weeks now run in days. This enables us to iterate more quickly to identify
superior architectures and algorithms. As a result, in several cases, our
system is competitive with the transcription of human workers when benchmarked
on standard datasets. Finally, using a technique called Batch Dispatch with
GPUs in the data center, we show that our system can be inexpensively deployed
in an online setting, delivering low latency when serving users at scale.
Dario Amodei Rishita Anubhai Eric Battenberg Carl Case Jared Casper Bryan Catanzaro Jingdong Chen Mike Chrzanowski Adam Coates Greg Diamos Erich Elsen Jesse Engel Linxi Fan Christopher Fougner Tony Han Awni Hannun Billy Jun Patrick LeGresley Libby Lin Sharan Narang Andrew Ng Sherjil Ozair Ryan Prenger Jonathan Raiman Sanjeev Satheesh David Seetapun Shubho Sengupta Yi Wang Zhiqian Wang Chong Wang Bo Xiao Dani Yogatama Jun Zhan Zhenyao Zhu