EDBT 2026 Demo / reviewers in the wild / expert
Mehrzad Samadi
dblp:44/9256
· DBLP profile ↗
19ranked-venue papers
6as first author
3since 2021 · last 2026
0000-0002-3581-1255ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 4 first-author · 1 since 2021Software engineering, systems software and programming languages · 5 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
9 papers |
GPUs and heterogeneous computing · 38% Parallel and multicore computing · 24% Emerging computing paradigms · 22% | |
| Artificial intelligence
1 paper |
Language models and text generation · 50% Planning, search and constraint satisfaction · 50% | |
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 95% Programming languages and type systems · 5% |
Topics — the 21 heaviest of 24, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Natural language and speech › Language models and text generation
test-time scaling |
1.0 | 1 | 2026 | Scaling Test-Time Compute to Achieve IOI Gold Medal with Open-Weight Models · ACL (1) 2026 |
Emerging computing paradigms
approximate computing |
0.6 | 4 | 2015 | Rumba: an online quality management system for approximate computing · ISCA 2015 Scaling Performance via Self-Tuning Approximation for Graphics Engines · ACM Trans. Comput. Syst. 2014 Paraprox: pattern-based approximation for data parallel applications · ASPLOS 2014 |
Parallel and multicore computing
speculative parallelization |
0.3 | 2 | 2014 | Leveraging GPUs using cooperative loop speculation · ACM Trans. Archit. Code Optim. 2014 Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism · HPCA 2011 |
Compilers and program optimization
approximate computing |
0.2 | 1 | 2016 | Input responsiveness: using canary inputs to dynamically steer approximation · PLDI 2016 |
Hardware accelerators and domain-specific architectures
approximate computing accelerator |
0.2 | 1 | 2015 | Rumba: an online quality management system for approximate computing · ISCA 2015 |
GPUs and heterogeneous computing › CPU-GPU heterogeneous computing
CPU-GPU co-processing |
0.2 | 1 | 2015 | SKMD: Single Kernel on Multiple Devices for Transparent CPU-GPU Collaboration · ACM Trans. Comput. Syst. 2015 |
Hardware reliability and fault tolerance
error detection and correction |
0.2 | 1 | 2015 | Rumba: an online quality management system for approximate computing · ISCA 2015 |
Parallel and multicore computing
data-parallel programming |
0.2 | 1 | 2014 | Paraprox: pattern-based approximation for data parallel applications · ASPLOS 2014 |
GPUs and heterogeneous computing
GPU computing |
0.2 | 1 | 2014 | Paraprox: pattern-based approximation for data parallel applications · ASPLOS 2014 |
GPUs and heterogeneous computing › GPU computing
approximate GPU arithmetic |
0.2 | 1 | 2013 | SAGE: self-tuning approximation for graphics engines · MICRO 2013 |
Compilers and program optimization › dynamic optimization
adaptive compilation |
0.1 | 1 | 2012 | Adaptive input-aware compilation for graphics engines · PLDI 2012 |
GPUs and heterogeneous computing
GPU compilation |
0.1 | 1 | 2012 | Adaptive input-aware compilation for graphics engines · PLDI 2012 |
Compilers and program optimization › parallelization
dynamic parallelization |
0.1 | 1 | 2011 | Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism · HPCA 2011 |
Compilers and program optimization › code generation
GPU code generation |
0.1 | 1 | 2011 | Sponge: portable stream programming on graphics engines · ASPLOS 2011 |
Parallel and multicore computing › parallel programming models
automatic parallelization |
0.1 | 1 | 2011 | Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism · HPCA 2011 |
GPUs and heterogeneous computing
GPU programming |
0.1 | 1 | 2011 | Sponge: portable stream programming on graphics engines · ASPLOS 2011 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2015 | SKMD: Single Kernel on Multiple Devices for Transparent CPU-GPU Collaboration · ACM Trans. Comput. Syst. 2015 |
GPUs and heterogeneous computing
GPU performance optimization |
0.0 | 1 | 2012 | Adaptive input-aware compilation for graphics engines · PLDI 2012 |
Memory systems › memory hierarchy
memory hierarchy optimization |
0.0 | 1 | 2012 | Adaptive input-aware compilation for graphics engines · PLDI 2012 |
Programming languages and type systems › dynamic languages
javascript |
0.0 | 1 | 2011 | Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism · HPCA 2011 |
GPUs and heterogeneous computing › GPU memory
GPU memory hierarchy |
0.0 | 1 | 2011 | Sponge: portable stream programming on graphics engines · ASPLOS 2011 |
Methods — techniques the papers use, named apart from their topics
test-time search · 1.0reinforcement learning · 1.0chain-of-thought prompting · 1.0runtime kernel selection · 0.5distributed conflict detection · 0.4data packing · 0.4dynamic approximation steering · 0.2canary input · 0.2workload partitioning · 0.2selective exact recomputation · 0.2output merging · 0.2output error prediction · 0.2kernel generation · 0.2thread fusion · 0.2static compiler · 0.2runtime tuning · 0.2pattern-based approximation · 0.2streaming language · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Scaling Test-Time Compute to Achieve IOI Gold Medal with Open-Weight ModelsabstractMehrzad Samadi, Aleksander Ficek, Sean Narenthiran, Siddhartha Jain, Wasi Uddin Ahmad, Somshubra Majumdar, Vahid Noroozi, Boris Ginsburg. Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2026. Mehrzad Samadi, Aleksander Ficek, Sean Narenthiran, Siddhartha Jain 0001, Wasi Uddin Ahmad, Somshubra Majumdar, Vahid Noroozi, Boris Ginsburg |
ACL (1) | 1 |
| 2024 | Leveraging Difference Recurrence Relations for High-Performance GPU Genome AlignmentabstractGenome pairwise sequence alignment is one of the most computationally intensive workloads in many genomic pipelines, often accounting for over 90% of the runtime of critical bioinformatics applications. Recent advancements in sequencing technologies keep increasing the throughput of genomic sequencing data while decreasing the associated cost, emphasizing the need for fast and accurate software to perform sequence analysis, given the quadratic complexity of exact pairwise algorithms. In this challenging scenario, we present the first fully GPU-accelerated version of the KSW2 genome alignment library. Results show that our high-performance implementation achieves up to 1145.17 Giga Cell Updates Per Second (GCUPS) and speedups up to 72.83 × on a single NVIDIA Tesla H100 over the state-of-the-art baseline software running on two Intel Xeon Platinum 8358 processors with a total of 128 CPU threads, while preserving alignment accuracy. Using the same configuration, we demonstrate a 66.00 × speedup, versus ksw2d-fast, a state-of-the-art improved version of one of the KSW2 algorithms. Furthermore, we compare our implementation against a recently proposed FPGA implementation of ksw2z, achieving speedups up to 156.37 × using a single H100 GPU. To further highlight the impact of our work, we integrate our accelerated kernels within one of the most used aligners and mappers in the State Of the Art, called minimap2, demonstrating runtime improvements by up to 8.51 × and 8.03 × using a single H100 GPU against the baseline software and mm2-fast, an optimized version of minimap2 which integrates ksw2d-fast as its core aligner. Our design accelerates all the algorithms of the state-of-the-art KSW2 aligner suite (splice, double- and single- gap affine) and supports the Z-drop heuristic and banded alignment as the original software to reduce the processing time further if needed. Finally, we evaluate our application on the H100 GPU, adapting the Berkeley Roofline model for KSW2 and demonstrating that our implementation is near optimal on our target GPU architecture. Alberto Zeni, Seth Onken, Marco D. Santambrogio, Mehrzad Samadi |
PACT | 4 |
| 2022 | A GPU-accelerated compute framework for pathogen genomic variant identification to aid genomic epidemiology of infectious disease: a malaria case studyabstractAs recently demonstrated by the COVID-19 pandemic, large-scale pathogen genomic data are crucial to characterize transmission patterns of human infectious diseases. Yet, current methods to process raw sequence data into analysis-ready variants remain slow to scale, hampering rapid surveillance efforts and epidemiological investigations for disease control. Here, we introduce an accelerated, scalable, reproducible, and cost-effective framework for pathogen genomic variant identification and present an evaluation of its performance and accuracy across benchmark datasets of Plasmodium falciparum malaria genomes. We demonstrate superior performance of the GPU framework relative to standard pipelines with mean execution time and computational costs reduced by 27× and 4.6×, respectively, while delivering 99.9% accuracy at enhanced reproducibility. Giovanna Carpi, Lev Gorenstein, Timothy T. Harkins, Mehrzad Samadi, Pankaj Vats |
Briefings Bioinform. | 4 |
| 2016 | Input responsiveness: using canary inputs to dynamically steer approximationabstractThis paper introduces Input Responsive Approximation (IRA), an approach that uses a canary input — a small program input carefully constructed to capture the intrinsic properties of the original input — to automatically control how program approximation is applied on an input-by-input basis. Motivating this approach is the observation that many of the prior techniques focusing on choosing how to approximate arrive at conservative decisions by discounting substantial differences between inputs when applying approximation. The main challenges in overcoming this limitation lie in making the choice of how to approximate both effectively (e.g., the fastest approximation that meets a particular accuracy target) and rapidly for every input. With IRA, each time the approximate program is run, a canary input is constructed and used dynamically to quickly test a spectrum of approximation alternatives. Based on these runtime tests, the approximation that best fits the desired accuracy constraints is selected and applied to the full input to produce an approximate result. We use IRA to select and parameterize mixes of four approximation techniques from the literature for a range of 13 image processing, machine learning, and data mining applications. Our results demonstrate that IRA significantly outperforms prior approaches, delivering an average of 10.2× speedup over exact execution while minimizing accuracy losses in program outputs. Michael Laurenzano, Parker Hill, Mehrzad Samadi, Scott A. Mahlke, Jason Mars, Lingjia Tang |
PLDI | 3 |
| 2015 | Orchestrating Multiple Data-Parallel Kernels on Multiple DevicesabstractTraditionally, programmers and software tools have focused on mapping a single data-parallel kernel onto a heterogeneous computing system consisting of multiple general-purpose processors (CPUS) and graphics processing units (GPUs). These methodologies break down as application complexity grows to contain multiple communicating data-parallel kernels. This paper introduces MKMD, an automatic system for mapping multiple kernels across multiple computing devices in a seamless manner. MKMD is a two phased approach that combines coarse grain scheduling of indivisible kernels followed by opportunistic fine-grained workgroup-level partitioning to exploit idle resources. During this process, MKMD considers kernel dependencies and the underlying systems along with the execution time model built with a few sets of profile data. With the scheduling decision, MKMD transparently manages the order of executions and data transfers for each device. On a real machine with one CPU and two different GPUs, MKMD achieves a mean speedup of 1.89x compared to the in-order execution on the fastest device for a set of applications with multiple kernels. 53% of this speedup comes from the coarse-grained scheduling and the other 47% is the result of the fine-grained partitioning. Janghaeng Lee, Mehrzad Samadi, Scott A. Mahlke |
PACT | 2 |
| 2015 | Rumba: an online quality management system for approximate computingabstractApproximate computing can be employed for an emerging class of applications from various domains such as multimedia, machine learning and computer vision. The approximated output of such applications, even though not 100% numerically correct, is often either useful or the difference is unnoticeable to the end user. This opens up a new design dimension to trade off application performance and energy consumption with output correctness. However, a largely unaddressed challenge is quality control: how to ensure the user experience meets a prescribed level of quality. Current approaches either do not monitor output quality or use sampling approaches to check a small subset of the output assuming that it is representative. While these approaches have been shown to produce average errors that are acceptable, they often miss large errors without any means to take corrective actions. To overcome this challenge, we propose Rumba for online detection and correction of large approximation errors in an approximate accelerator-based computing environment. Rumba employs continuous lightweight checks in the accelerator to detect large approximation errors and then fixes these errors by exact re-computation on the host processor. Rumba employs computationally inexpensive output error prediction models for efficient detection. Computing patterns amenable for approximation (e.g., map and stencil) are usually data parallel in nature and Rumba exploits this property for selective correction. Overall, Rumba is able to achieve 2.1x reduction in output error for an unchecked approximation accelerator while maintaining the accelerator performance gains at the cost of reducing the energy savings from 3.2x to 2.2x for a set of applications from different approximate computing domains. Daya Shanker Khudia, Babak Zamirai, Mehrzad Samadi, Scott A. Mahlke |
ISCA | 3 |
| 2015 | SKMD: Single Kernel on Multiple Devices for Transparent CPU-GPU CollaborationabstractHeterogeneous computing on CPUs and GPUs has traditionally used fixed roles for each device: the GPU handles data parallel work by taking advantage of its massive number of cores while the CPU handles non data-parallel work, such as the sequential code or data transfer management. This work distribution can be a poor solution as it underutilizes the CPU, has difficulty generalizing beyond the single CPU-GPU combination, and may waste a large fraction of time transferring data. Further, CPUs are performance competitive with GPUs on many workloads, thus simply partitioning work based on the fixed roles may be a poor choice. In this article, we present the single-kernel multiple devices (SKMD) system, a framework that transparently orchestrates collaborative execution of a single data-parallel kernel across multiple asymmetric CPUs and GPUs. The programmer is responsible for developing a single data-parallel kernel in OpenCL, while the system automatically partitions the workload across an arbitrary set of devices, generates kernels to execute the partial workloads, and efficiently merges the partial outputs together. The goal is performance improvement by maximally utilizing all available resources to execute the kernel. SKMD handles the difficult challenges of exposed data transfer costs and the performance variations GPUs have with respect to input size. On real hardware, SKMD achieves an average speedup of 28% on a system with one multicore CPU and two asymmetric GPUs compared to a fastest device execution strategy for a set of popular OpenCL kernels. Janghaeng Lee, Mehrzad Samadi, Yongjun Park 0001, Scott A. Mahlke |
ACM Trans. Comput. Syst. | 2 |
| 2014 | D2MA: accelerating coarse-grained data transfer for GPUsabstractTo achieve high performance on many-core architectures like GPUs, it is crucial to efficiently utilize the available memory bandwidth. Currently, it is common to use fast, on-chip scratchpad memories, like the shared memory available on GPUs' shader cores, to buffer data for computation. This buffering, however, has some sources of inefficiency that hinder it from most efficiently utilizing the available memory resources. These issues stem from shader resources being used for repeated, regular address calculations, a need to shuffle data multiple times between a physically unified on-chip memory, and forcing all threads to synchronize to ensure RAW consistency based on the speed of the slowest threads. To address these inefficiencies, we propose Data-Parallel DMA, or D2MA. D2MA is a reimagination of traditional DMA that addresses the challenges of extending DMA to thousands of concurrently executing threads. D2MA de-couples address generation from the shader's computational resources, provides a more direct and efficient path for data in global memory to travel into the shared memory, and introduces a novel dynamic synchronization scheme that is transparent to the programmer. These advancements allow D2MA to achieve speedups as high as 2.29x, and reduces the average time to buffer data by 81% on average. Davoud Anoushe Jamshidi, Mehrzad Samadi, Scott A. Mahlke |
PACT | 2 |
| 2014 | VAST: the illusion of a large memory space for GPUsabstractHeterogeneous systems equipped with traditional processors (CPUs) and graphics processing units (GPUs) have enabled processing large data sets. With new programming models, such as OpenCL and CUDA, programmers are encouraged to offload data parallel workloads to GPUs as much as possible in order to fully utilize the available resources. Unfortunately, offloading work is strictly limited by the size of the physical memory on a specific GPU. In this paper, we present Virtual Address Space for Throughput processors (VAST), an automatic GPU memory management system that provides an OpenCL program with the illusion of a virtual memory space. Based on the available physical memory on the target GPU, VAST does the following: automatically partitions the data parallel workload into chunks; efficiently extracts the precise working set required for the divided workload; rearranges the working set in contiguous memory space; and, transforms the kernel to operate on the reorganized working set. With VAST, the programmer is responsible for developing a data parallel kernel in OpenCL without concern for physical memory space limitations of individual GPUs. VAST transparently handles code generation dealing with the constraints of the actual physical memory and improves the retargetability of the OpenCL with moderate overhead. Experiments demonstrate that a real GPU, NVIDIA GTX 760 with 2 GB of memory, can compute any size of data without program changes achieving 2.6x speedup over CPU exeuction, which is a realistic alternative for large data computation. Janghaeng Lee, Mehrzad Samadi, Scott A. Mahlke |
PACT | 2 |
| 2014 | Paraprox: pattern-based approximation for data parallel applicationsabstractApproximate computing is an approach where reduced accuracy of results is traded off for increased speed, throughput, or both. Loss of accuracy is not permissible in all computing domains, but there are a growing number of data-intensive domains where the output of programs need not be perfectly correct to provide useful results or even noticeable differences to the end user. These soft domains include multimedia processing, machine learning, and data mining/analysis. An important challenge with approximate computing is transparency to insulate both software and hardware developers from the time, cost, and difficulty of using approximation. This paper proposes a software-only system, Paraprox, for realizing transparent approximation of data-parallel programs that operates on commodity hardware systems. Paraprox starts with a data-parallel kernel implemented using OpenCL or CUDA and creates a parameterized approximate kernel that is tuned at runtime to maximize performance subject to a target output quality (TOQ) that is supplied by the user. Approximate kernels are created by recognizing common computation idioms found in data-parallel programs (e.g., Map, Scatter/Gather, Reduction, Scan, Stencil, and Partition) and substituting approximate implementations in their place. Across a set of 13 soft data-parallel applications with at most 10% quality degradation, Paraprox yields an average performance gain of 2.7x on a NVIDIA GTX 560 GPU and 2.5x on an Intel Core i7 quad-core processor compared to accurate execution on each platform. Mehrzad Samadi, Davoud Anoushe Jamshidi, Janghaeng Lee, Scott A. Mahlke |
ASPLOS | 1 |
| 2014 | Leveraging GPUs using cooperative loop speculationabstractGraphics processing units, or GPUs, provide TFLOPs of additional performance potential in commodity computer systems that frequently go unused by most applications. Even with the emergence of languages such as CUDA and OpenCL, programming GPUs remains a difficult challenge for a variety of reasons, including the inherent algorithmic characteristics and data structure choices used by applications as well as the tedious performance optimization cycle that is necessary to achieve high performance. The goal of this work is to increase the applicability of GPUs beyond CUDA/OpenCL to implicitly data-parallel applications written in C/C++ using speculative parallelization. To achieve this goal, we propose Paragon : a static/dynamic compiler platform to speculatively run possibly data-parallel portions of sequential applications on the GPU while cooperating with the system CPU. For such loops, Paragon utilizes the GPU in an opportunistic way while orchestrating a cooperative relation between the CPU and GPU to reduce the overhead of miss-speculations. Paragon monitors the dependencies for the loops running speculatively on the GPU and nonspeculatively on the CPU using a lightweight distributed conflict detection designed specifically for GPUs, and transfers the execution to the CPU in case a conflict is detected. Paragon resumes the execution on the GPU after the CPU resolves the dependency. Our experiments show that Paragon achieves 4x on average and up to 30x speedup compared to unsafe CPU execution with four threads and 7x on average and up to 64x speedup versus sequential execution across a set of sequential but implicitly data-parallel applications. Mehrzad Samadi, Amir Hormati, Janghaeng Lee, Scott A. Mahlke |
ACM Trans. Archit. Code Optim. | 1 |
| 2014 | Scaling Performance via Self-Tuning Approximation for Graphics EnginesabstractApproximate computing, where computation accuracy is traded off for better performance or higher data throughput, is one solution that can help data processing keep pace with the current and growing abundance of information. For particular domains, such as multimedia and learning algorithms, approximation is commonly used today. We consider automation to be essential to provide transparent approximation, and we show that larger benefits can be achieved by constructing the approximation techniques to fit the underlying hardware. Our target platform is the GPU because of its high performance capabilities and difficult programming challenges that can be alleviated with proper automation. Our approach—SAGE—combines a static compiler that automatically generates a set of CUDA kernels with varying levels of approximation with a runtime system that iteratively selects among the available kernels to achieve speedup while adhering to a target output quality set by the user. The SAGE compiler employs three optimization techniques to generate approximate kernels that exploit the GPU microarchitecture: selective discarding of atomic operations, data packing, and thread fusion. Across a set of machine learning and image processing kernels, SAGE's approximation yields an average of 2.5× speedup with less than 10% quality loss compared to the accurate execution on a NVIDIA GTX 560 GPU. Mehrzad Samadi, Janghaeng Lee, Davoud Anoushe Jamshidi, Scott A. Mahlke, Amir Hormati |
ACM Trans. Comput. Syst. | 1 |
| 2013 | Transparent CPU-GPU collaboration for data-parallel kernels on heterogeneous systemsabstractHeterogeneous computing on CPUs and GPUs has traditionally used fixed roles for each device: the GPU handles data parallel work by taking advantage of its massive number of cores while the CPU handles non data-parallel work, such as the sequential code or data transfer management. Unfortunately, this work distribution can be a poor solution as it under utilizes the CPU, has difficulty generalizing beyond the single CPU-GPU combination, and may waste a large fraction of time transferring data. Further, CPUs are performance competitive with GPUs on many workloads, thus simply partitioning work based on the fixed roles may be a poor choice. In this paper, we present the single kernel multiple devices (SKMD) system, a framework that transparently orchestrates collaborative execution of a single data-parallel kernel across multiple asymmetric CPUs and GPUs. The programmer is responsible for developing a single data-parallel kernel in OpenCL, while the system automatically partitions the workload across an arbitrary set of devices, generates kernels to execute the partial workloads, and efficiently merges the partial outputs together. The goal is performance improvement by maximally utilizing all available resources to execute the kernel. SKMD handles the difficult challenges of exposed data transfer costs and the performance variations GPUs have with respect to input size. On real hardware, SKMD achieves an average speedup of 29% on a system with one multicore CPU and two asymmetric GPUs compared to a fastest device execution strategy for a set of popular OpenCL kernels. Janghaeng Lee, Mehrzad Samadi, Yongjun Park 0001, Scott A. Mahlke |
PACT | 2 |
| 2013 | APOGEE: Adaptive prefetching on GPUs for energy efficiencyabstractModern graphics processing units (GPUs) combine large amounts of parallel hardware with fast context switching among thousands of active threads to achieve high performance. However, such designs do not translate well to mobile environments where power constraints often limit the amount of hardware. In this work, we investigate the use of prefetching as a means to increase the energy efficiency of GPUs. Classically, CPU prefetching results in higher performance but worse energy efficiency due to unnecessary data being brought on chip. Our approach, called APOGEE, uses an adaptive mechanism to dynamically detect and adapt to the memory access patterns found in both graphics and scientific applications that are run on modern GPUs to achieve prefetching efficiencies of over 90%. Rather than examining threads in isolation, APOGEE uses adjacent threads to more efficiently identify address patterns and dynamically adapt the timeliness of prefetching. The net effect of APOGEE is that fewer thread contexts are necessary to hide memory latency and thus sustain performance. This reduction in thread contexts and related hardware translates to simplification of hardware and leads to a reduction in power. For Graphics and GPGPU applications, APOGEE enables an 8X reduction in multi-threading hardware, while providing a performance benefit of 19%. This translates to a 52% increase in performance per watt over systems with high multi-threading and 33% over existing GPU prefetching techniques. Ankit Sethia, Ganesh S. Dasika, Mehrzad Samadi, Scott A. Mahlke |
PACT | 3 |
| 2013 | SAGE: self-tuning approximation for graphics enginesabstractApproximate computing, where computation accuracy is traded off for better performance or higher data throughput, is one solution that can help data processing keep pace with the current and growing overabundance of information. For particular domains such as multimedia and learning algorithms, approximation is commonly used today. We consider automation to be essential to provide transparent approximation and we show that larger benefits can be achieved by constructing the approximation techniques to fit the underlying hardware. Our target platform is the GPU because of its high performance capabilities and difficult programming challenges that can be alleviated with proper automation. Our approach, SAGE, combines a static compiler that automatically generates a set of CUDA kernels with varying levels of approximation with a run-time system that iteratively selects among the available kernels to achieve speedup while adhering to a target output quality set by the user. The SAGE compiler employs three optimization techniques to generate approximate kernels that exploit the GPU microarchitecture: selective discarding of atomic operations, data packing, and thread fusion. Across a set of machine learning and image processing kernels, SAGE's approximation yields an average of 2.5x speedup with less than 10% quality loss compared to the accurate execution on a NVIDIA GTX 560 GPU. Mehrzad Samadi, Janghaeng Lee, Davoud Anoushe Jamshidi, Amir Hormati, Scott A. Mahlke |
MICRO | 1 |
| 2012 | Adaptive input-aware compilation for graphics enginesabstractWhile graphics processing units (GPUs) provide low-cost and efficient platforms for accelerating high performance computations, the tedious process of performance tuning required to optimize applications is an obstacle to wider adoption of GPUs. In addition to the programmability challenges posed by GPU's complex memory hierarchy and parallelism model, a well-known application design problem is target portability across different GPUs. However, even for a single GPU target, changing a program's input characteristics can make an already-optimized implementation of a program perform poorly. In this work, we propose Adaptic, an adaptive input-aware compilation system to tackle this important, yet overlooked, input portability problem. Using this system, programmers develop their applications in a high-level streaming language and let Adaptic undertake the difficult task of input portable optimizations and code generation. Several input-aware optimizations are introduced to make efficient use of the memory hierarchy and customize thread composition. At runtime, a properly optimized version of the application is executed based on the actual program input. We perform a head-to-head comparison between the Adaptic generated and hand-optimized CUDA programs. The results show that Adaptic is capable of generating codes that can perform on par with their hand-optimized counterparts over certain input ranges and outperform them when the input falls out of the hand-optimized programs' "comfort zone". Furthermore, we show that input-aware results are sustainable across different GPU targets making it possible to write and optimize applications once and run them anywhere. Mehrzad Samadi, Amir Hormati, Mojtaba Mehrara, Janghaeng Lee, Scott A. Mahlke |
PLDI | 1 |
| 2011 | Sponge: portable stream programming on graphics enginesabstractGraphics processing units (GPUs) provide a low cost platform for accelerating high performance computations. The introduction of new programming languages, such as CUDA and OpenCL, makes GPU programming attractive to a wide variety of programmers. However, programming GPUs is still a cumbersome task for two primary reasons: tedious performance optimizations and lack of portability. First, optimizing an algorithm for a specific GPU is a time-consuming task that requires a thorough understanding of both the algorithm and the underlying hardware. Unoptimized CUDA programs typically only achieve a small fraction of the peak GPU performance. Second, GPU code lacks efficient portability as code written for one GPU can be inefficient when executed on another. Moving code from one GPU to another while maintaining the desired performance is a non-trivial task often requiring significant modifications to account for the hardware differences. In this work, we propose Sponge, a compilation framework for GPUs using synchronous data flow streaming languages. Sponge is capable of performing a wide variety of optimizations to generate efficient code for graphics engines. Sponge alleviates the problems associated with current GPU programming methods by providing portability across different generations of GPUs and CPUs, and a better abstraction of the hardware details, such as the memory hierarchy and threading model. Using streaming, we provide a write-once software paradigm and rely on the compiler to automatically create optimized CUDA code for a wide variety of GPU targets. Sponge's compiler optimizations improve the performance of the baseline CUDA implementations by an average of 3.2x. Amir Hormati, Mehrzad Samadi, Mark Woh, Trevor N. Mudge, Scott A. Mahlke |
ASPLOS | 2 |
| 2011 | Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanismabstractAs the web becomes the platform of choice for execution of more complex applications, a growing portion of computation is handed off by developers to the client side to reduce network traffic and improve application responsiveness. Therefore, the client-side component, often written in JavaScript, is becoming larger and more compute-intensive, increasing the demand for high performance JavaScript execution. This has led to many recent efforts to improve the performance of JavaScript engines in the web browsers. Furthermore, considering the wide-spread deployment of multi-cores in today's computing systems, exploiting parallelism in these applications is a promising approach to meet their performance requirement. However, JavaScript has traditionally been treated as a sequential language with no support for multithreading, limiting its potential to make use of the extra computing power in multicore systems. In this work, to exploit hardware concurrency while retaining traditional sequential programming model, we develop ParaScript, an automatic runtime parallelization system for JavaScript applications on the client's browser. First, we propose an optimistic runtime scheme for identifying parallelizable regions, generating the parallel code on-the-fly, and speculatively executing it. Second, we introduce an ultra-lightweight software speculation mechanism to manage parallel execution. This speculation engine consists of a selective checkpointing scheme and a novel runtime dependence detection mechanism based on reference counting and range-based array conflict detection. Our system is able to achieve an average of 2.18× speedup over the Firefox browser using 8 threads on commodity multi-core systems, while performing all required analyses and conflict detection dynamically at runtime. Mojtaba Mehrara, Po-Chun Hsu, Mehrzad Samadi, Scott A. Mahlke |
HPCA | 3 |
| 2011 | Dynamic Voltage and Frequency Scheduling for Embedded Processors Considering Power/Performance TradeoffsabstractAn adaptive method to perform dynamic voltage and frequency scheduling (DVFS) for minimizing the energy consumption of microprocessor chips is presented. Instead of using a fixed update interval, the proposed DVFS system makes use of adaptive update intervals for optimal frequency and voltage scheduling. The optimization enables the system to rapidly track the workload changes so as to meet soft real-time deadlines. The technique, which can be realized with very simple hardware, is completely transparent to the application. The results of applying the method to some real application workloads demonstrate considerable power savings and fewer frequency updates compared to DVFS systems based on fixed update intervals. Mostafa E. Salehi, Mehrzad Samadi, Mehrdad Najibi, Ali Afzali-Kusha, Massoud Pedram, Sied Mehdi Fakhraie |
IEEE Trans. Very Large Scale Integr. Syst. | 2 |