An Empirical Study of the Reliability of High-Level Synthesis Tools

被引:14
作者
Herklotz, Yann [1 ]
Du, Zewei [1 ]
Ramanathan, Nadesh [1 ]
Wickerson, John [1 ]
机构
[1] Imperial Coll London, London, England
来源
2021 IEEE 29TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM 2021) | 2021年
关键词
D O I
10.1109/FCCM51124.2021.00034
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
High-level synthesis (HLS) is becoming an increasingly important part of the computing landscape, even in safety-critical domains where correctness is key. As such, HLS tools are increasingly relied upon. But are they trustworthy? We have subjected four widely used HLS tools - LegUp, Xilinx Vivado HLS, the Intel HLS Compiler and Bambu - to a rigorous fuzzing campaign using thousands of random, valid C programs that we generated using a modified version of the Csmith tool. For each C program, we compiled it to a hardware design using the HLS tool under test and checked whether that hardware design generates the same output as an executable generated by the GCC compiler. When discrepancies arose between GCC and the HLS tool under test, we reduced the C program to a minimal example in order to zero in on the potential bug. Our testing campaign has revealed that all four HLS tools can be made to generate wrong designs from valid C programs and one tool could be made to crash; this underlines the need for these increasingly trusted tools to be more rigorously engineered. Out of 6700 test-cases, we found 1191 programs that caused at least one tool to fail, out of which we were able to discern at least 8 unique bugs.
引用
收藏
页码:219 / 223
页数:5
相关论文
共 24 条
[1]  
[Anonymous], 2020, EE J JUN EE J JUN
[2]   LegUp: An Open-Source High-Level Synthesis Tool for FPGA-Based Processor/Accelerator Systems [J].
Canis, Andrew ;
Choi, Jongsok ;
Aldham, Mark ;
Zhang, Victor ;
Kammoona, Ahmed ;
Czajkowski, Tomasz ;
Brown, Stephen D. ;
Anderson, Jason H. .
ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2013, 13 (02)
[3]  
Canis Andrew., 2015, LegUp: Open-Source High-Level Synthesis Research Framework"
[4]   An Empirical Comparison of Compiler Testing Techniques [J].
Chen, Junjie ;
Hu, Wenxiang ;
Hao, Dan ;
Xiong, Yingfei ;
Zhang, Hongyu ;
Zhang, Lu ;
Xie, Bing .
2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, :180-190
[5]   Taming Compiler Fuzzers [J].
Chen, Yang ;
Groce, Alex ;
Zhang, Chaoqiang ;
Wong, Weng-Keen ;
Fern, Xiaoli ;
Eide, Eric ;
Regehr, John .
ACM SIGPLAN NOTICES, 2013, 48 (06) :197-207
[6]   Verification of Scheduling of Conditional Behaviors in High-Level Synthesis [J].
Chouksey, Ramanuj ;
Karfa, Chandan .
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, 2020, 28 (07) :1638-1651
[7]   Closer to the Edge: Testing Compilers More Thoroughly by Being Less Conservative About Undefined Behaviour [J].
Even-Mendoza, Karine ;
Cadar, Cristian ;
Donaldson, Alastair F. .
2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, :1219-1223
[8]   SPARK: A high-level synthesis framework for applying parallelizing compiler transformations [J].
Gupta, S ;
Dutt, N ;
Gupta, R ;
Nicolau, A .
16TH INTERNATIONAL CONFERENCE ON VLSI DESIGN, PROCEEDINGS, 2003, :461-466
[9]  
Herklotz Y., 2020, P 2020 ACM SIGDA INT P 2020 ACM SIGDA INT
[10]  
Intel, 2020, SDK OPENCL APPL