Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Sam S. Stone

dblp:42/5297 · DBLP profile ↗
← Back
8ranked-venue papers
2as first author
0since 2021 · last 2008
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 8 · 2 first-authorSoftware engineering, systems software and programming languages · 1

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
5 papers
Processor architecture and microarchitecture · 52% GPUs and heterogeneous computing · 24% Parallel and multicore computing · 16%
Software engineering, system software, and programming languages
2 papers
Concurrent programming · 77% Compilers and program optimization · 23%

Topics — the 16 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture › branch prediction
branch misprediction
0.112008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Processor architecture and microarchitecture › instruction-level parallelism
control independence
0.112008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
GPUs and heterogeneous computing › GPU kernel optimization
CUDA optimization
0.112008
Optimization principles and application performance evaluation of a multithreaded GPU using CUDA · PPoPP 2008
GPUs and heterogeneous computing
GPU performance optimization
0.112008
Optimization principles and application performance evaluation of a multithreaded GPU using CUDA · PPoPP 2008
GPUs and heterogeneous computing
GPU programming
0.112008
Optimization principles and application performance evaluation of a multithreaded GPU using CUDA · PPoPP 2008
Processor architecture and microarchitecture
instruction-level parallelism
0.112008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Memory systems
memory access optimization
0.112008
Optimization principles and application performance evaluation of a multithreaded GPU using CUDA · PPoPP 2008
Concurrent programming
speculative execution
0.112007
Exploiting Postdominance for Speculative Parallelization · HPCA 2007
Processor architecture and microarchitecture
many-core architecture
0.112007
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007
Parallel and multicore computing
parallel programming models
0.112007
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007
Parallel and multicore computing
speculative parallelization
0.112007
Exploiting Postdominance for Speculative Parallelization · HPCA 2007
Processor architecture and microarchitecture
load/store queue
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Processor architecture and microarchitecture › out-of-order execution
memory disambiguation
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Processor architecture and microarchitecture › memory system microarchitecture
store-load forwarding
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Processor architecture and microarchitecture
speculative execution
0.022008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Compilers and program optimization › parallelization
automatic parallelization
0.012007
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007

Methods — techniques the papers use, named apart from their topics

immediate postdominance · 0.1dynamic reconvergence prediction · 0.1simulation · 0.1register allocation · 0.1memory coalescing · 0.1latency hiding · 0.1circuit complexity analysis · 0.1
YearPublicationVenuePosition
2008 Program optimization space pruning for a multithreaded gpu
abstract
Program optimization for highly-parallel systems has historically been considered an art, with experts doing much of the performance tuning by hand. With the introduction of inexpensive, single-chip, massively parallel platforms, more developers will be creating highly-parallel applications for these platforms, who lack the substantial experience and knowledge needed to maximize their performance. This creates a need for more structured optimization methods with means to estimate their performance effects. Furthermore these methods need to be understandable by most programmers. This paper shows the complexity involved in optimizing applications for one such system and one relatively simple methodology for reducing the workload involved in the optimization process.
Shane Ryoo, Christopher I. Rodrigues, Sam S. Stone, Sara S. Baghsorkhi, Sain-Zee Ueng, John A. Stratton, Wen-Mei W. Hwu
CGO3
2008 Branch-mispredict level parallelism (BLP) for control independence
abstract
A microprocessorpsilas performance is fundamentally limited by the rate at which it can resolve branch mispredictions. Control independence (CI) architectures look for useful control and data independent instructions to fetch and execute in the shadow of a branch misprediction. This paper demonstrates that CI architectures can be guided to exploit substantial branch-mispredict level parallelism (BLP) in existing control intensive applications. A program has branch-mispredict level parallelism when its dynamic execution trace contains hard-to-predict branches that are both control and data independent, and thus could, potentially, be resolved in parallel. Although applications have a high degree of inherent BLP, we find that the amount of BLP exploited by naive CI architectures tends to be quite small. We show that spawn selection and data dependence handling policies in a CI architecture should make choices that explicitly aim to maximize branch-mispredict level parallelism. We demonstrate that with BLP-focussed policies, CI architectures can expose high amounts of branch-mispredict level parallelism and achieve 50% to 90% improvements in IPC on several of the SPEC 2000 Integer benchmarks.
Kshitiz Malik, Mayank Agarwal, Sam S. Stone, Kevin M. Woley, Matthew I. Frank
HPCA3
2008 Optimization principles and application performance evaluation of a multithreaded GPU using CUDA
abstract
GPUs have recently attracted the attention of many application developers as commodity data-parallel coprocessors. The newest generations of GPU architecture provide easier programmability and increased generality while maintaining the tremendous memory bandwidth and computational power of traditional GPUs. This opportunity should redirect efforts in GPGPU research from ad hoc porting of applications to establishing principles and strategies that allow efficient mapping of computation to graphics hardware. In this work we discuss the GeForce 8800 GTX processor's organization, features, and generalized optimization strategies. Key to performance on this platform is using massive multithreading to utilize the large number of cores and hide global memory latency. To achieve this, developers face the challenge of striking the right balance between each thread's resource usage and the number of simultaneously active threads. The resources to manage include the number of registers and the amount of on-chip memory used per thread, number of threads per multiprocessor, and global memory bandwidth. We also obtain increased performance by reordering accesses to off-chip memory to combine requests to the same or contiguous memory locations and apply classical optimizations to reduce the number of executed operations. We apply these strategies across a variety of applications and domains and achieve between a 10.5X to 457X speedup in kernel codes and between 1.16X to 431X total application speedup.
Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David Blair Kirk, Wen-Mei W. Hwu
PPoPP4
2008 Program optimization carving for GPU computing
Shane Ryoo, Christopher I. Rodrigues, Sam S. Stone, John A. Stratton, Sain-Zee Ueng, Sara S. Baghsorkhi, Wen-Mei W. Hwu
J. Parallel Distributed Comput.3
2008 Accelerating advanced MRI reconstructions on GPUs
Sam S. Stone, Justin P. Haldar, Stephanie C. Tsao, Wen-Mei W. Hwu, Bradley P. Sutton, Zhi-Pei Liang
J. Parallel Distributed Comput.1
2007 Implicitly Parallel Programming Models for Thousand-Core Microprocessors
abstract
This paper argues for an implicitly parallel programming model for many-core microprocessors, and provides initial technical approaches towards this goal. In an implicitly parallel programming model, programmers maximize algorithm-level parallelism, express their parallel algorithms by asserting high-level properties on top of a traditional sequential programming language, and rely on parallelizing compilers and hardware support to perform parallel execution under the hood. In such a model, compilers and related tools require much more advanced program analysis capabilities and programmer assertions than what are currently available so that a comprehensive understanding of the input program's concurrency can be derived. Such an understanding is then used to drive automatic or interactive parallel code generation tools for a diverse set of parallel hardware organizations. The chip-level architecture and hardware should maintain parallel execution state in such a way that a strictly sequential execution state can always be derived for the purpose of verifying and debugging the program. We argue that implicitly parallel programming models are critical for addressing the software development crises and software scalability challenges for many-core microprocessors.
Wen-Mei W. Hwu, Shane Ryoo, Sain-Zee Ueng, John H. Kelm, Isaac Gelado, Sam S. Stone, Robert E. Kidd, Sara S. Baghsorkhi, Aqeel Mahesri, Stephanie C. Tsao, Nacho Navarro, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
DAC6
2007 Exploiting Postdominance for Speculative Parallelization
abstract
Task-selection policies are critical to the performance of any architecture that uses speculation to extract parallel tasks from a sequential thread. This paper demonstrates that the immediate postdominators of conditional branches provide a larger set of parallel tasks than existing task-selection heuristics, which are limited to programming language constructs (such as loops or procedure calls). Our evaluation shows that postdominance-based task selection achieves, on average, more than double the speedup of the best individual heuristic, and 33% more speedup than the best combination of heuristics. The specific contributions of this paper include, first, a description of task selection based on immediate post-dominance for a system that speculatively creates tasks. Second, our experimental evaluation demonstrates that existing task-selection heuristics based on loops, procedure calls, and if-else statements are all subsumed by compiler-generated immediate postdominators. Finally, by demonstrating that dynamic reconvergence prediction closely approximates immediate postdominator analysis, we show that the notion of immediate postdominators may also be useful in constructing dynamic task selection mechanisms
Mayank Agarwal, Kshitiz Malik, Kevin M. Woley, Sam S. Stone, Matthew I. Frank
HPCA4
2005 Address-Indexed Memory Disambiguation and Store-to-Load Forwarding
abstract
This paper describes a scalable, low-complexity alternative to the conventional load/store queue (LSQ) for superscalar processors that execute load and store instructions speculatively and out-of-order prior to resolving their dependences. Whereas the LSQ requires associative and age-prioritized searches for each access, we propose that an address-indexed store-forwarding cache (SFC) perform store-to-load forwarding and that an address-indexed memory disambiguation table (MDT) perform memory disambiguation. Neither structure includes a CAM. The SFC behaves as a small cache, accessed speculatively and out-of-order by both loads and stores. Because the SFC does not rename in-flight stores to the same address, violations of memory anti and output dependences can cause in-flight loads to obtain incorrect values from the SFC. Therefore, the MDT uses sequence numbers to detect and recover from true, anti, and output memory dependence violations. We observe empirically that loads and stores that violate anti and output memory dependences are rarely on a program's critical path and that the additional cost of enforcing predicted anti and output dependences among these loads and stores is minimal. In conjunction with a scheduler that enforces predicted anti and output dependences, the MDT and SFC yield performance equivalent to that of a large LSQ that has similar or greater circuit complexity. The SFC and MDT are scalable structures that yield high performance and lower dynamic power consumption than the LSQ, and they are well-suited for checkpointed processors with large instruction windows
Sam S. Stone, Kevin M. Woley, Matthew I. Frank
MICRO1