2009 MEMOCODE HW/SW Co-Design Contest

We like to thank IEEE Council on Electronic Design and Automation (CEDA), Bluespec and Xilinx for sponsoring the 2009 contest.

Final Results

The winner of this year's Absolute Performance Prize is Team TeleTitanium (Daniel L. Rosenband and Till Rosenband). The winner of this year's Normalized Performance Prize is Team MIT (A. Agarwal, N. Dave, K. Fleming, A. Khan, M. King, M. Ng, M. Vijayaraghavan, CSAIL, MIT). Each prize carries with it a $1000 cash award. The winners are also invited to submit a 4-page paper in the proceedings of Memocode 2009 and to present their designs at the conference. Everyone who submitted a completed design is eligible to submit for review a 2-page abstract for the formal conference proceedings. Everyone who participated is invited to submit a poster abstract for review for inclusion in the poster session.

The two winning teams were selected unanimously by this year's judging panel, Dr. Kees Vissers (Xilinx); Prof. Forrest Brewer (UC Santa Barbara); and James C. Hoe (CMU). The functionality and performance by the two winning teams have been positively verified by James C. Hoe. The official normalization rule applied poorly to the GPU-based entries. The judges decided not to accept the normalized speedup results from the two GPU-based entries. (The two GPU-based entries would not have been competitive in the normalized performance contest by even very generous estimations.) The contest organizers will address this issue specifically for next year to enable a fair normalization across a wide range of platforms.

The contest period for this year's design contest came to a close on 3/31. We had 22 teams at the start and 10 teams by the end. However, only 5 teams submitted finished solutions by the deadline. The five teams and their results are

  • Team: Barracuda (Iowa State University)
    • Members: Allada Veerendra, Jin-Ning Tioh, Justin Rilling, Lakshminarasimhan Seshagiri, and Michael Steffen
    • Platform: NVIDIA Tesla T10 (self-reported normalization 18,122,385)
    • Development: NVIDIA CUDA
    • Speedup (absolute)=24371; Speedup (normalized)=NA;
  • Team: CA$HE MON3Y (Old Dominion University)
    • Members: Woodrow H. Edwards, Nelson Gosnel, Jr., and Andrew Lewis
    • Platform: XUPV2P, software only, (reference normalization 1)
    • Development: ISE/EDK
    • Speedup (absolute)=2.4; Speedup (normalized)=2.4;
  • Team: MIT (CSAIL, MIT)
    • Members: A. Agarwal, N. Dave, K. Fleming, A. Khan, M. King, M. Ng, M. Vijayaraghavan
    • Platform 1: XUPV2P (reference normalization 1)
    • Development 2: Bluespec, ISE/EDK
    • Speedup (absolute)=3381; Speedup (normalized)=3381 (officially verified);
  • Team: TeleTitanium
    • Members: Daniel L. Rosenband and Till Rosenband
    • Platform: AMD Athlon 64 X2 Dual Core 4200+ with NVIDIA GTX 285 GPGPU (self-reported normalization 2677)
    • Development: gcc and NVIDIA CUDA
    • Speedup (absolute)=53064 (officially verified); Speedup (normalized)=NA;
  • Team: Uhrturm (IAIPC, Graz University of Technology)
    • Members: Erich Wenger and Paul Rouschal
    • Platform: XUPV2P using both PPC405 (self-reported normalization 1)
    • Development: ISE/EDK and Matlab for analysis
    • Speedup (absolute)=462; Speedup (normalized)=462;

In addition to the above finishers, starters included teams from (in order of registration) UVA, Bradley University, Royal Institute of Technology (Stockholm), iicdesign.com, Politecnico di Milan, Virginia Tech, University of Idaho, IIT Madras, a 2nd team from TU-Graz, UC Davis, a 2nd team from Iowa State University.

The Memocode contest and conference organizers would like to thank everyone who participated and congratulate the winners.

News Items

  • April 1, 2009: Contest entry is now closed. Stayed tuned for the results.
  • March 23, 2009: Please review the official contest rules for submission requirements and instructions.
  • March 20, 2009: Performance test cases are published to enable performance tuning in the remaining 10 days.
  • March 6, 2009: The design challenge spec has been revised to raised the lower-bound on “theta” to pi/256. (The upper bound remains pi/4.)
  • March 2, 2009: Please visit the FAQ page.
  • March 1, 2009: The MEMOCODE 2009 Design Contest is underway. Please see this years design challenge.
  • Feb 2009: Xilinx joins as the newest 2009 contest sponsor, along with IEEE CEDA and Bluespec.
  • Feb 2009: The reference implementation will be released as an EDK 9.2 project for the XUP board (the original V2Pro version).
  • Jan 2009: The contest rules have been posted, including the announcement of $1000 cash prizes in two different performance competitions.
  • Jan 2009: Bluespec has joined IEEE CEDA as sponsors of the 2009 contest.
  • Dec 2008: You can download the winning design from the 2008 contest. Other 2008 submissions have also been made public by their authors for download.
  • Nov 2008: We like to thank the IEEE Council on Electornic Design and Automation (CEDA) as the first sponsor of the 2009 contest.

Contest Overview

MEMOCODE 2009 will again have a design contest. The contest will start March 1, 2009. The deadline for submission is March 31, 2009 and the notification of the results is on May 8, 2009. The conference will award at least two prize categories, each with a $1000 cash award. (See last year's results.)

Each team that submits a complete and working entry will be invited to submit for review a 2-page abstract for the formal conference proceedings; prize winning teams will be invited to contribute a 4-page short paper.

Please refer to the official contest rules for additional details.

Please help us spread the word about this contest and post this contest flyer at your institution.

Contest Sponsors

Getting Started

As in past years, a design challenge will be posted on the start date of the contest. The design teams have 30 days to produce a working implementation employing any HW and SW design methodology and targeting any FPGA development platform of the contestants' choice.

Before the contest gets underway, participants are highly encouraged to familiarize themselves with the contest style and infrastructure. Experience has shown that valuable design time gets lost during the contest due to 'learning-curve' issues with tools and platforms. Please visit past years contest site to see examples of contest problems and winning solutions.

If you are interested in participating, please email jhoe+mc09 at ece_cmu_edu and we will keep you updated by email.

Reference Platform

The 2009 contest will continue to use the very affordable Virtex-II-based Xilinx XUP board as the reference platform. For academic participants that do not have access to affordable tools and platforms, we encourage you to approach the Xilinx Donation Program for assistance at the earliest opportunity. (You can cite your participation in this contest in your donation request.) We also want to point out the availability of the new Virtex-5-based Xilinx XUPV5 board. Under the contest rules, you are allowed to use any platform in both the absolute performance category and the normalized performance category. Please refer to the official contest rules for additional details.

The 2009 Design Challenge (Released 3/1/2009)

The MEMOCODE 2009 Design Contest is underway. Please see this years design challenge. Please email jhoe+MC09@ece.cmu.edu separately to receive instructions on downloading the reference software-only implementation of this challenge as a Xilinx EDK project for the XUPV2 board. In the request, please specify: 1. a team name; 2. team member names and affiliations; and 3. the contacting email address. There are no obligations associated with receiving or using the open-source-licensed reference implementation. The reference implementation includes a rudimentary testing and timing jig. We like to thank Rachata Ausavarungnirun (CMU) for preparing this year’s reference implementation.

You will have until March 31, 2009 to submit your entry. The instructions for submitting an entry is in the contest rules.

Performance testcases (Released 3/20/2009)

The absolute and normalized performance competitions are based on the geometric mean of speedup (relative to the reference SW-only implementation) of 12 test cases. Nine of them are

N=10, R=10, theta=arcsin(0.1), reference run time=10,958us

N=700, R=10, theta=arcsin(0.1), reference run time=55,619,458us

N=1000, R=10, theta=arcsin(0.1), reference run time=113,455,224us

N=10, R=100, theta=arcsin(*0.0123*), reference run time=*11,033us* ←-corrections made 3/26

N=700, R=100, theta=arcsin(*0.0123*), reference run time=*56,893,223us* ←-corrections made 3/26

N=1000, R=100, theta=arcsin(*0.0123*), reference run time=*116,084,610us* ←-corrections made 3/26

N=10, R=100, theta=arcsin(0.2), reference run time=11,021us

N=700, R=100, theta=arcsin(0.2), reference run time=55,963,646us

N=1000, R=100, theta=arcsin(0.2), reference run time=112,892,179us

You may not hardcode the above parameters into your design for special optimization. The final three “secret” test cases will be released after the final submission.

We will also validate the correctness of your design using other undisclosed test cases.

You can download the initialization functions to replace the default initTestCases() function in the reference SW release. The functions also initialize of the grid values.

10 in IEEE double is 0x40240000_00000000

100 in IEEE double is 0x40590000_00000000

arcsin(0.1) in IEEE double is 0x3fb9a492_76037884

arcsin(0.2) in IEEE double is 0x3fc9c618_aa4ae23d

arcsin(0.0123) in IEEE double is 0x3f8930e7_af22c66f

Performance testcases (Blind) (Released 4/2/2009)

N=13, R=(100*100*10)^(1/3), theta=arcsin( (0.0123*0.1*0.2)^(1/3) ), reference run time=18,709 us

N=683, R=(100*100*10)^(1/3), theta=arcsin( (0.0123*0.1*0.2)^(1/3) ), reference run time=53,248,232 us

N=937, R=(100*100*10)^(1/3), theta=arcsin( (0.0123*0.1*0.2)^(1/3) ), reference run time=94,741,983 us

The Ns are “Happy Primes”

R=(100*100*10)^(1/3) in double is 0x4047353b_d4393a74 (~46.4159)

theta=arcsin( (0.0123*0.1*0.2)^(1/3) ) in double is 0x3fb00d10_56e7796e (~0.0626993)


Goto FAQ page.

Important Dates

  • March 1, 2009: design challenge revealed and contest starts
  • March 31, 2009: design entries due
  • May 8, 2009: results announced
  • July 13~15, 2009: MEMOCODE Conference, Cambridge, MA

Contest Organizers

The 2009 contest is co-organized by Forrest Brewer (forrest at ece_ucsb_edu) and James C. Hoe (jhoe+mc09 at ece_cmu_edu).