Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Gautam B. Doshi is active.

Publication


Featured researches published by Gautam B. Doshi.


compiler construction | 2001

Software Pipelining of Nested Loops

Kalyan Muthukumar; Gautam B. Doshi

Software pipelining is a technique to improve the performance of a loop by overlapping the execution of several iterations. The execution of a software-pipelined loop goes through three phases: prolog, kernel, and epilog. Software pipelining works best if most of the time is spent in the kernel phase rather than in the prolog or epilog phases. This can happen only if the trip count of a pipelined loop is large enough to amortize the overhead of prolog and epilog phases. When a software-pipelined loop is part of a loop nest, the overhead of filling and draining the pipeline is incurred for every iteration of the outer loop. This paper introduces two novel methods to minimize the overhead of software-pipeline fill/drain in nested loops. In effect, these methods overlap the draining of the software pipeline corresponding to one outer loop iteration with the filling of the software pipeline corresponding to one or more subsequent outer loop iterations. This results in better instruction-level parallelism (ILP) for the loop nest, particularly for loop nests in which the trip counts of inner loops are small. These methods exploit Itanium™ architecture software pipelining features such as predication, register rotation, and explicit epilog stage control, to minimize the code size overhead associated with such a transformation. However, the key idea behind these methods is applicable to other architectures as well. These methods have been prototyped in the Intel optimizing compiler for the Itanium™ processor. Experimental results on SPEC2000 benchmark programs are presented.


international conference on parallel architectures and compilation techniques | 2001

Optimizing Software Data Prefetches with Rotating Registers

Gautam B. Doshi; Rakesh Krishnaiyer; Kalyan Muthukumar

Software data prefetching is a well-known technique to improve the performance of programs that suffer many cache misses at several levels of memory hierarchy. However, it has significant overhead in terms of increased code size, additional instructions, and possibly increased memory bus traffic due to redundant prefetches. This paper presents two novel methods to reduce the overhead of software data prefetching and improve the program performance by optimized prefetch scheduling. These methods exploit the availability of rotating registers and predication in architectures such as the Itanium/sup TM/ architecture. The methods (I) minimize redundant prefetches, (2) reduce the number of issue slots needed for prefetch instructions, and (3) avoid branch mispredict penalties - all with minimal code size increase. Compared to traditional data prefetching techniques, these methods (i) do not require loop unrolling, (ii) do not require predicate computations and (iii) require fewer machine resources. One of these methods has been implemented in the Intel Production Compiler for the ItaniumTM processor. This technique is compared with traditional approaches for software prefetching and experimental results are presented based on the floating-point benchmark suite of CPU2000.


Archive | 1998

Scalar hardware for performing SIMD operations

Sivakumar Makineni; Sunnhyuk Kimn; Gautam B. Doshi; Roger A. Golliver


Archive | 1998

Methods and apparatus for efficient control of floating-point status register

Jerome C. Huck; Peter Markstein; Glenn T. Colon-Bonet; Alan H. Karp; Roger A. Golliver; Michael J. Morrison; Gautam B. Doshi; Guillermo Rozas


Archive | 2002

Mechanism for software pipelining loop nests

Kalyan Muthukumar; Gautam B. Doshi


Archive | 1998

Method for software pipelining nested loops

Gautam B. Doshi; Robert S. Norin


Archive | 1999

Method and apparatus for managing temporal and non-temporal data in a single cache structure

John H. Crawford; Gautam B. Doshi; Stuart E. Sailer; John Wai Cheong Fu; Gregory S. Mathews


Archive | 1998

System and method for deferring exceptions generated during speculative execution

Gautam B. Doshi; Peter Markstein; Alan H. Karp; Jerome C. Huck; Glenn T. Colon-Bonet; Michael J. Morrison


Archive | 1998

Computer product and method for sparse matrices

Gautam B. Doshi; Roger A. Golliver; Bob Norin


Archive | 1998

Method for setting a bit associated with each component of packed floating-pint operand that is normalized in SIMD operations

Sivakumar Makineni; Sunnhyuk Kimn; Gautam B. Doshi; Roger A. Golliver

Collaboration


Dive into the Gautam B. Doshi's collaboration.

Researchain Logo
Decentralizing Knowledge