TORCH Computational Reference Kernels: A Testbed for Computer Science Research

Alex Kaiser, Samuel Williams, Kamesh Madduri, Khaled Ibrahim, David Bailey, 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},
    Institution = {EECS Department, University of California, Berkeley},
    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