TORCH Computational Reference Kernels: A Testbed for Computer Science Research
Alex Kaiser and Samuel Williams and Kamesh Madduri and Khaled Ibrahim and David Bailey and James Demmel and Erich Strohmaier
EECS Department, University of California, Berkeley
Technical Report No. UCB/EECS-2010-144
December 7, 2010
http://www2.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-144.pdf
For decades, computer scientists have sought guidance on how to evolve architectures, languages, and programming models in order to improve application performance, efficiency, and productivity. Unfortunately, without overarching advice about future directions in these areas, individual guidance is inferred from the existing software/hardware ecosystem, and each discipline often conducts their research independently assuming all other technologies remain fixed. In today's rapidly evolving world of on-chip parallelism, isolated and iterative improvements to performance may miss superior solutions in the same way gradient descent optimization techniques may get stuck in local minima. To combat this, we present TORCH: A Testbed for Optimization ResearCH. These computational reference kernels define the core problems of interest in scientific computing without mandating a specific language, algorithm, programming model, or implementation. To compliment the kernel (problem) definitions, we provide a set of algorithmically-expressed verification tests that can be used to verify a hardware/software co-designed solution produces an acceptable answer. Finally, to provide some illumination as to how researchers have implemented solutions to these problems in the past, we provide a set of reference implementations in C and MATLAB.
BibTeX citation:
@techreport{Kaiser:EECS-2010-144, Author= {Kaiser, Alex and Williams, Samuel and Madduri, Kamesh and Ibrahim, Khaled and Bailey, David and Demmel, James and Strohmaier, Erich}, Title= {TORCH Computational Reference Kernels: A Testbed for Computer Science Research}, Year= {2010}, Month= {Dec}, Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-144.html}, Number= {UCB/EECS-2010-144}, Abstract= {For decades, computer scientists have sought guidance on how to evolve architectures, languages, and programming models in order to improve application performance, efficiency, and productivity. Unfortunately, without overarching advice about future directions in these areas, individual guidance is inferred from the existing software/hardware ecosystem, and each discipline often conducts their research independently assuming all other technologies remain fixed. In today's rapidly evolving world of on-chip parallelism, isolated and iterative improvements to performance may miss superior solutions in the same way gradient descent optimization techniques may get stuck in local minima. To combat this, we present TORCH: A Testbed for Optimization ResearCH. These computational reference kernels define the core problems of interest in scientific computing without mandating a specific language, algorithm, programming model, or implementation. To compliment the kernel (problem) definitions, we provide a set of algorithmically-expressed verification tests that can be used to verify a hardware/software co-designed solution produces an acceptable answer. Finally, to provide some illumination as to how researchers have implemented solutions to these problems in the past, we provide a set of reference implementations in C and MATLAB.}, }
EndNote citation:
%0 Report %A Kaiser, Alex %A Williams, Samuel %A Madduri, Kamesh %A Ibrahim, Khaled %A Bailey, David %A Demmel, James %A Strohmaier, Erich %T TORCH Computational Reference Kernels: A Testbed for Computer Science Research %I EECS Department, University of California, Berkeley %D 2010 %8 December 7 %@ UCB/EECS-2010-144 %U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-144.html %F Kaiser:EECS-2010-144