What is stream computing? Today, stream computing is primarily the realm of the graphics processor unit (GPU) where the parallel processes used to produce graphics imagery are used instead to perform arithmetic calculations. Characteristics of stream computing: How does stream computing differ from computation on the CPU? The benefit of stream computing stems from the highly parallel architecture of the GPU whereby tens to hundreds of parallel operations are performed with each clock cycle whereas the CPU can at best work only a small handful of parallel operations per clock cycle. What are AMD's stream computing product features? View AMD FireStream 9170 specifications. What are AMD's stream computing product advantages? AMD's open systems SDK approach: View AMD FireStream 9170 specifications. When can I get an AMD stream computing product and what does it cost? A software development kit containing compilers, libraries, performance profiling tools and drivers is available for download. SDK version 1.0 will be available in Q1 2008. This SDK is a compilation of open source software and proprietary AMD software put into the open source. Included in the first release are compilers, performance profilers, AMD's core math library (ACML) and AMD's compute abstraction layer (CAL) which enables device programming in familiar high-level languages rather than graphics programming specific to the GPU. Please read our stream computing whitepaper (PDF 1.1MB) for more information about this SDK. How does AMD's stream computing address the IEEE754 standard for double precision floating point computation? When we were preparing to launch our stream computing initiative in 2006, a series of customer interviews was conducted to get input on requirements relative to this standard. They learned that as long as we handled the special cases according to the most common usage, complete IEEE754 compliance wasn't required. AMD's FireStream 9170 implementation should handle a large majority of customers' requirements. In the AMD FireStream 9170: What does AMD's software stack look like? How does the AMD FireStream support Linux? What type of programming model does AMD use for AMD FireStream? Regarding specific compiler implementation choices — currently we have enabled Brook with a CAL backend. We are looking at other options as well, including industry standards. What happened to AMD's CTM? Will the AMD FireStream SDK work on previous generation hardware? Which applications are best suited to Stream Computing? Examples include: If Stream processors are really GPUs, will I need to learn graphics programming to properly implement my application? Developers are thus able to write directly to the GPU without needing to learn graphics-specific programming languages. CAL provides direct communication to the device. Will future stream computing architectures force me to rewrite my applications? Existing applications that currently use only the CPU for computation will require recompiling to take advantage of the capabilities of the stream processor. We anticipate most applications running in a stream computing environment in the near term will be applications written from scratch with the intent of implementing a stream computing platform. Over time as applications undergo typical rewrites and recompiles, those applications naturally suited to the stream computing environment will migrate to this environment along with the necessary recoding and recompiling tasks. Is stream computing a return to the old co-processor days? We fully anticipate technological advancements as well as programming techniques to pull these co-processors closer to the CPU over time until, as with earlier co-processors, they disappear into the CPU itself. AMD's competitors offer similar but non-standardized products. Should I wait on product standardization before exploring Stream Computing? AMD's open systems philosophy includes: Who can I contact at AMD for more information? Contact us with technical questions about FireStream hardware, software or developer issues. How do I get started with AMD CAL SDK? We have also authored a programmer's guide which is included in the SDK download. Note that the three CAL files are also included in the SDK. We have posted them here as well for your reference prior to installing CAL. Why does the integrated installer (setup.exe) behave badly? If you have problems with this installer, please remove any previous versions of CAL/BROOK+ using Add/Remove programs in Control Panel and try again. Does the Repair/Modify option update my previous installation of CAL/BROOK+? What is CALROOT and where is it set and used? The Visual Studio project files for the samples use CALROOT to locate the CAL headers and libraries. Some sample projects also use CALROOT to load themselves. You would not need CALROOT unless you wish to build the samples. How do I get started with Brook+? To build the compiler and runtime, enter the "platform" directory and type "make". This generates and fills the "sdk" directory. To build the samples, first build the sdk as above, then enter the "samples" directory and type "make". Where can I get CAL support? What graphics driver does Brook+ require? How is BROOKROOT used?
Stream computing (or stream processing) refers to a class of compute problems, applications or tasks that can be broken down into parallel, identical operations and run simultaneously on a single processor device. These parallel data streams entering the processor device, computations taking place and the output from the device define stream computing.
Stream computing takes advantage of a SIMD methodology (single instruction, multiple data) whereas a CPU is a modified SISD methodology (single instruction, single data); modifications taking various parallelism techniques into account.
AMD's FireStream™ 9170, our latest generation stream computing GPU, features:
AMD's FireStream 9170 hardware:
The FireStream 9170, AMD's flagship stream computing platform, is scheduled to be available in Q1 2008 in quantity. Please contact us for a price quote.
The IEEE754 standard defines formats for representing single and double-precision floating point numbers as well as some special cases like denorms, infinities and NaNs. It also defines four rounding modes and methods for exception handling.
AMD has authored a whitepaper (PDF) that discusses our software stack.
AMD is committed to Linux and sees Linux as a major platform for Stream Computing. Recently we have announced an initiative on open source driver for Linux. We are continuing our momentum and we expect that stream computing stack will support Linux over the next calendar year.
AMD encourages a pure streaming/SIMD model for AMD FireStream. A few enhancements like data sharing are useful for a small subset of applications. However data sharing in a SIMD environment brings its own challenges and should to be used with utmost care. In fact if used incorrectly performance might actually degrade.
CAL is a natural evolution to CTM — we are building our software stack bottoms up. We provide low-level access and specs as CTM extension to CAL. CAL permits the end user to write portable code. Frequently our developers like to drop down to the next level of detail for further tuning and profiling. CAL provides this level of access.
To run the CAL/Brook+ SDK, you need a platform based on the AMD R600 GPU or later. R600 and newer GPUs are found with ATI Radeon™ HD2400, HD2600, HD2900 and HD3800 graphics board.
Applications best suited to stream computing possess two fundamental characteristics:
No. AMD along with the open source community are working to mask the GPU's graphics programming heritage. This is being accomplished by our release of Brook+, the open source Brook compiler plus AMD enhancements geared directly at non-graphics stream computing, and AMD's CAL — Compute Abstraction Layer. CAL provides high-level language access to the various parts of the GPU as needed.
Implementing a new algorithm or application in a stream computing environment will require the use of various stream-specific techniques. These techniques and tools are all available in the AMD FireStream SDK described above.
In many ways stream computing does resemble the days when vector co-processors handled substantial mathematical tasks. The benefit then as now is the remarkable performance boost gained through implementing these specialized components.
AMD is focused on providing the tools necessary to help our customers succeed with our AMD FireStream products, and we believe the open systems approach is a critical component of this philosophy. Open systems enables AMD along with partners and 3rd party vendors to collaborate closely when developing highly integrated solutions as well as work independently when targeting a niche solution.
Contact us with general questions about AMD's stream computing initiative, products, sales and training.AMD Compute Abstraction Layer (CAL) FAQ
We have assembled a number of documents to help guide you through the setup and early use of CAL. Please read these before getting started:
The integrated installer is designed to invoke the CAL and BROOK+ installers in that order. Most of the installation logic is present in each individual MSI.
No, you would need to completely remove the previous version of CAL/BROOK+. The Repair/Modify option only repairs the current version of CAL/BROOK+.
CALROOT is set as the path to the CAL SDK during installation. It is defined in the current user's Environment Variables. Other users on the system have to define CALROOT in their environment or in the system environment.Brook+ FAQ
Brook+ requires the following be installed or available to work with AMD FireStream technology:
Information was shipped in the installer.
Brook+ has no direct dependency on the graphics driver. CAL working correctly with a given driver should result in Brook+ working correctly.
The makefiles need CALROOT defining. BROOKROOT is not used by the makefile system.
Thursday, July 30, 2009
Stream Computing FAQ
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment