{'fraction_non_alphanumeric': 0.017037037037037038, 'fraction_numerical': 0.0, 'mean_word_length': 5.372641509433962, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
DASH: Design Automation for Synthesis and Hardware Generation for CNN

Deployment of complex convolutional neural network (CNN) algorithms on Field Programmable Gate Arrays (FPGAs) is a non-trivial task and it becomes even more challenging when the implementation has to be done on resource-constrained devices like smaller FPGAs with less computational resources. To make hardware implementation as easy as software based implementation, a high-level framework with well-optimized hardware relevant libraries, is needed to quickly map a CNN model to such devices without much effort on the part of CNN designer or hardware designer. Only a few such frameworks are available targeting FPGAs, but without the consideration for resource constraints. In this work, we present a Python-based open source design automation tool called “DASH” for hardware generation for convolutional neural networks. Based on user given CNN parameters and hardware resource constraints, the tool trains the network model and generates the hardware code to map the CNN model to FPGAs under the specified hardware resource constraints with the help of a library of optimized design templates. The evaluation results of the generated hardware design show better performance compared to other works on the hardware implementation of CNNs in terms of resources and throughput.