EDAthon 2020

August 07, 2020

Virtual Contest


Sponsored by Cadence; IEEE CEDA; IEEE CEDA Hong Kong Chapter

Organized by HKUST

Virtual EDAthon 2020 was held successfully on 7 August 2020 with 24 teams from universities across mainland China, Hong Kong, Taiwan, India and Singapore. During the one-day competition, all participants exercised their sophisticated coding and analytical skills to solve interesting EDA problems. All the participants (24 teams, 48 participants in total) will be given souvenir and all the awardees will get their certificates in crystal frame. The five teams below were awarded for their outstanding performance.

Champion

Tsinghua University

Students: Dingcheng Yang & Lingjie Li

Supervisor: Wenjian Yu

Second Place

Peking University

Students: Yudong Han & Youwei Xiao

Supervisor: Yun Liang

Second Place

Shandong University

Students: Zhe Wang & Xiaotong Guo

Supervisor: Zhaoyan Shen

Third Place

Peking University

Students: Jing Mai & Jiarui Wang

Supervisor: Yibo Lin

Third Place

Nanyang Technological University

Students: Shien Zhu & Jingwei Chew

Supervisor: Weichen Liu

EDAthon is a whole-day programming contest (9:00am-3:00pm programming + 3:30pm-4:30pm seminar) that features interesting and challenging topics in Electronic Design Automation (EDA). It is also a unique opportunity to bring together talents for EDA which enables the rapid advancement in computer technology. Due to CoVID- 19, this year we will have an online virtual contest. The contest will involve solving interesting problems in the broad context of Computer-Aided Design (CAD) of integrated circuits and systems. It will emphasize on team work, problem solving skills and programming techniques for EDA applications. It is a goal of EDAthon and CEDA HK to promote EDA in Hong Kong and her neighboring regions, and to nurture the best of the next-generation students and professionals for the EDA community.

The contest is open to two-person teams of graduate students or senior undergraduate students currently full-time enrolled in a university, specializing in EDA or related areas. In the contest, there will be five problems selected from the following areas:

      • System Design and Analysis

      • Logic and High-level Design

      • Physical Design

      • Circuit Analysis

      • Emerging Technologies, e.g., DFM, Security, Biochip, Machine Learning in EDA etc.

During the contest, students will be given the problem statements and some sample test data. The answers will be judged based on their correctness under the given constraints using hidden benchmarks. Three teams winning the contest will be rewarded with trophies and cash prizes as the follows.

  • First Prize (one team): 5000 CNY, instructor (2000 CNY)

  • Second Prize (one team): 3000 CNY, instructor (1000 CNY)

  • Third Prize (one team): 2000 CNY, instructor (500 CNY)

IMPORTANT DATES

  • Apr 13, 2020: Call for participation released, open for enrollment emails

  • Jul. 15, 2020: Registration deadline

Registration (Deadline: July 15, 2020)

  • Please complete the following google form for registration.

Problem Descriptions:

Problem 1: Bitwidth-Quantized Training of Neural Networks

A trend in AI deployment is to move the computation from cloud (central) to the user end (edge) where the data are generated. This is sometimes known as edge computing which is usually done on hardware-constrained terminal devices or IoT boards with limited storage and processing power. Consequently, it is important for the AI neural networks (NN) to be of small size while preserving certain output accuracy. A way to achieve lightweight NNs is to quantize the weights and biases to a small bitwidth (e.g., a reduction from FP32 to INT8 already represents a 4X reduction in storage). Specifically, in this problem, we will investigate the quantized training of LeNet on MNIST with different bitwidths, namely, to explore the hardware-efficient low-bitwidth quantized training of a simple neural network for handwritten digit image classification. In particular, the complexity-accuracy trade-off will be systematically investigated.

NOTE: This problem requires high-performance GPU hardware.

Reference:

[1] Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations, https://arxiv.org/abs/1609.07061

[2] TensorQuant - A Simulation Toolbox for Deep Neural Network Quantization, https://arxiv.org/abs/1710.05758

Problem 2: Loop Scheduling for Switching-Activity Minimization on VLIW processor

VLIW (Very Long Instruction Word) architecture has been widely utilized in DSP processors. A VLIW processor has multiple functional units (FUs) and can process several instructions simultaneously. As it has an instruction bus with large capacitance, transition activities on the instruction bus consume a significant fraction of total power dissipation in a processor. In this question, your task is to reduce the bus switching activities by implementing an instruction-level scheduling algorithm considering dependencies among instructions.

Reference:

[1] Zili Shao, Bin Xiao, Chun Xue, Qingfeng Zhuge, and Edwin H-M. Sha. "Loop scheduling with timing and switching-activity minimization for VLIW DSP." ACM Transactions on Design Automation of Electronic Systems (TODAES) 11.1 (2006): 165-185.

[2] Zili Shao, Qingfeng Zhuge, Meilin Liu, Bin Xiao and Edwin H-M. Sha. "Switching-Activity Minimization on Instruction-level Loop Scheduling for VLIW DSP Applications." IEEE Computer Society Press Proceedings, 2004.

Problem 3: 3D Pattern Routing

In global routing, we need to plan the route of each net. This question is on the technique called 3D pattern routing, by which we combine pattern routing and layer assignment, and it is possible to produce optimal solutions with respect to the patterns under consideration in terms of a cost function in wire length and routability. Please refer to the following paper for reference.

Reference:

[1] “CUGR: Detailed-Routability-Driven 3D Global Routing with Probabilistic Resource Model”, Jinwei Liu, Chak-Wa Pui, Fangzhou Wang, and Evangeline FY Young, DAC 2020.

Problem 4: Floorplanning with optimum area utilization under constraints

In floorplanning stage of physical implementation of VLSI, we arrange the position of each modules/blocks and assign port locations. We’d like to minimize the global bounding box of a floorplan along with other objectives such as total wirelength, signal delays. In the problem, you will be given a series of rectangles and you would try to place all of them closely on a canvas without overlapping. We expect a good solution that minimize the area of the global bounding box. Some hard/soft constrains will be applied in this problem, eg certain area has blockage that rectangles cannot be placed, some rectanges should be placed near each other, etc.

Reference:

[1] B*-Tree:Chang Y C, Chang Y W, Wu G M, et al. B*-trees: A new representation for non-slicing floorplans[C]//Proceedings of the 37th Annual Design Automation Conference. 2000: 458-463.

[2] BSG(Bounded slicing grid)- structure:Nakatake S, Fujiyoshi K, Murata H, et al. Module placement on BSG-structure and IC layout applications[C]//Proceedings of International Conference on Computer Aided Design. IEEE, 1996: 484-491.

[3] Simulated Annealing:https://en.wikipedia.org/wiki/Simulated_annealing

[4] linear programming:Chen P, Kuh E S. Floorplan sizing by linear programming approximation[C]//Proceedings of the 37th Annual Design Automation Conference. 2000: 468-471.

Problem 5: Systolic array for GEMM and SPMV

With the success of TPU on accelerating CNN (convolutional neural network) which is invented by Google, application specific accelerator is receiving particular high attention. For TPU, the core is a systolic array, which is a well-known architecture for accelerating GEMM (General Matrix Matrix multiplication) operation. In this problem, we will have two parts.

For the first part, you need to use HDL to implement a 6*6 systolic array to perform GEMM. In the reference [1], you can find the paper on implementing a 3*3 systolic array on FPGA.

For the second part, you need to use HDL to implement a systolic array to perform spmv (sparse matrix vector multiplication). In the reference [2], you can find how to design such hardware circuit on FPGA.

NOTE: This problem requires you to have an IDE to debug HDL.

Reference:

[1] Vucha, Mahendra, and Arvind Rajawat. "Design and FPGA implementation of systolic array architecture for matrix multiplication." International Journal of Computer Applications 26.3 (2011): 18-22.

[2] E. Montagne and R. Surós, "Systolic Sparse Matrix Vector Multiply in the Age of TPUs and Accelerators," 2019 Spring Simulation Conference (SpringSim), Tucson, AZ, USA, 2019, pp. 1-10.

Schedule | Date: 7 Aug, 2020

9am-3pm EDAthon2020 Contest

3:00-3:30pm Break

3:30-5:00pm Mini-seminar on the contest problems

Contest System Environment

Ubuntu 19.04 (Linux 5.0.0-15-generic)

  • gcc 8.3

  • g++ 8.3

  • vim 8.1

  • cmake 3.13.4

  • python2 2.7.16

  • python3 3.7.3

  • gedit 3.32.0

  • clang 8.0.0-3

  • TensorFlow 2.0.0

  • High-performance GPU (For Problem 1)

  • HDL IDE (e.g. Vivado. For Problem 5)

Organization Committee

Chair

Wei Zhang

Hong Kong University of Science and Technology

wei.zhang@ust.hk

Vice-Chair

Jason Xue

City University of Hong Kong

jasonxue@cityu.edu.hk


Ray Cheung, City University of Hong Kong

r.cheung@cityu.edu.hk

Zili Shao, Chinese University of Hong Kong

shao@cse.cuhk.edu.hk

Ngai Wong, University of Hong Kong

nwong@eee.hku.hk

Jiang Xu, Hong Kong University of Science and Technology

jiang.xu@ust.hk

Evangeline Young, Chinese University of Hong Kong

fyyoung@cse.cuhk.edu.hk

Bei Yu, Chinese University of Hong Kong

byu@cse.cuhk.edu.hk

| IEEE | CEDA | ©Copyright CEDA-HK