AMD hat das AMD Accelerated Parallel Processing (APP) Software Development Kit (SDK) v2.4 veröffentlicht. Hinter diesem sperrigen Namen verbirgt sich AMDs Lösung zur Entwicklung parallelisierter Software auf Basis der OpenCL-Programmierplattform. Das SDK trug bis vor kurzem noch den Namen ATI Stream SDK, der aber im Zuge des Wegfalls der Marke ATI im Januar 2011 in AMD APP SDK geändert wurde. Die OpenCL Entwicklungsumgebung unterstützt nicht nur die hauseigenen GPUs ab der RV7xx Generation, sondern auch alle aktuellen x86 CPUs. Mit dem Stream SDK 2.4 werden neben den APUs "Ontario" und "Zacate" auch erstmals die APUs der A-Serie unterstützt, die unter dem Codenamen "Llano" besser bekannt sein dürften. Dieser Schritt ist vor allem mit Blick auf den AMD Fusion Developer Summit (AFDS) vom 13. bis 16. Juni wichtig, schließlich soll hier der Austausch von Erfahrungen bei der Softwareentwicklung für heterogene Systeme im Mittelpunkt stehen.
Die neue Version nutzt erstmals den Vorteil aus, dass bei den APUs die CPU-Kerne und die GPU am gleichen Speichercontroller hängen. Die Laufzeitumgebung regelt den Datenaustausch zwischen den beiden Recheneinheiten der APUs nun ohne jegliches Kopieren zwischen den Speicherbereichen im Systemspeicher. Leider ist es AMD noch immer nicht gelungen, die Dual-Chip-Lösung ATI Radeon HD 5970 richtig zu unterstützen. Nach wie vor kann nur eine GPU genutzt werden. Ob dieses Problem auch auf den Nachfolger AMD Radeon HD 6990 zutrifft, wird nicht angegeben. Weiterhin wird aufgeführt, dass es zu einer Reduktion der erzielbaren Genauigkeit für Berechnungen doppelter Genauigkeit kommt, wenn ein Modell der neuen AMD-Radeon-HD-6900-Serie verwendet wird. Eine genau Liste der unterstützten Hardware kann hier gefunden werden. Gegenüber den fünf vorangegangenen Veröffentlichungen (2.0, 2.01, 2.1, 2.2, 2.3) hat AMD erneut weitere Features hinzugefügt (siehe Liste unten) und will zudem an der Performance gearbeitet haben. Außerdem wurden zahlreiche Fehler in Compiler und Runtime behoben. Eine genaue Liste der behobenen und bekannten Probleme ist in den offiziellen Release Notes dokumentiert.
Seit der Version 2.0 des ATI Stream SDK setzt AMD voll und ganz auf die plattformunabhängige, offene Open Computing Language (OpenCL), während mit dem ATI Stream SDK 1.x noch die proprietäre Hochsprache Brook+ verwendet wurde, die AMD aber nicht mehr weiterentwickelt. Ab dem Stream SDK 2.2 wird auch der OpenCL 1.1 Standard unterstützt, zudem bietet AMD Unterstützung für eine Reihe von Extensions (Erweiterung zum OpenCL 1.1 Standard). So werden beispielsweise Berechnungen mit Gleitkommazahlen doppelter Genauigkeit als Extension (nicht als optionale, sondern als AMD spezifische vendor extension cl_amd_fp64) angeboten. Zusätzlich zu den Basisoperatoren für Addition, Subtraktion und Multiplikation im SDK v2.1 können seit dem SDK 2.2 erstmals unter anderem trigonometrische Funktionen, Datentypumwandlungen und weitere Operatoren für Berechnungen doppelter Genauigkeit auf der GPU genutzt werden. Allerdings unterscheidet sich der nutzbare Umfang zwischen den Evergreen, RV7xx (nur Beta-Unterstützung) und x86 CPUs. Eine komplette Liste der auf den GPUs unterstützten Operationen kann dem AMD APP OpenCL Programming Guide auf Seite 141 entnommen werden.
Was ist neu im AMD APP SDK V2.4?
Improved OpenCL runtime performance:
Zero copy transfer of data between CPU and GPU for APUs (Windows only)
Improved PCIe transfer speed
Improved kernel launch times
Support for AMD A-series devices
Support for:
AMD C-30 Accelerated Processor with AMD Radeon™ HD 6250 graphics card
AMD C-50 Accelerated Processor with AMD Radeon™ HD 6250 graphics card
AMD E-240 Accelerated Processor with AMD Radeon™ HD 6310 graphics card
AMD E-350 Accelerated Processor with AMD Radeon™ HD 6310 graphics card
AMD Radeon™ HD 6670 graphics card
AMD Radeon™ HD 6570 graphics card
AMD Radeon™ HD 6450 graphics card
Support for CPU/x86 images (Enables the support for image formats, as described in the Khronos OpenCL Specification, to be run on the x86 CPU)
Preview Feature: Support for cl_khr_fp64 on the CPU
Cached reads (-fno-alias)
Binary image format improvements
DXVA buffer sharing
FFT performance improvements
Uninstallation of SDK 2.4 or its components is now done through the Catalyst Install Manager (CIM). See the Installation Notes for a description of the procedure.
Samples:
New samples:
LUDecomposition
TransferOverlap
BufferBandwidth
BlackScholesDP
An optimized AESEncryptDecrypt sample.
Added syntax highlighting files.
Added --flags command line option to specify build flags for kernel code.
Added --platformId (short form: -p) command line option to run a sample on a specific platform.
CLInfo sample removed, and CLInfo target file shipped with the Developer package.
Support for setting the OpenCL compiler build options
Improved analysis for AMD Radeon™ HD 6970 graphics cards
Support for displaying x86 assembly code
Commencing with Catalyst 11.3, the AMD Accelerated Parallel Processing (APP) OpenCL runtime is included in the GPU drivers. More frequent updates to the run-time may be obtained by updating the drivers.
Um OpenCL-Anwendungen auf AMD GPUs laufen lassen zu können, musste bisher auf dem jeweiligen System neben einem aktuellen AMD Catalyst-Treiberpaket auch das SDK installiert sein. Dies war nötig, da nur mit dem SDK auch die notwendige OpenCL-Laufzeitumgebung auf dem System installiert wird. Dieser für den Endanwender eher unglücklichen Lösung trug das Unternehmen dann Rechnung, indem zunächst als Übergangslösung neben dem normalen AMD-Catalyst-Treiberpaket zusätzlich noch die AMD Catalyst Accelerated Parallel Processing (APP) Technology Edition zum Download angeboten wurde. In diesem Paket war bereits das ATI Stream SDK bzw. AMD APP SDK enthalten - allerdings nur in einer abgespeckten Version. Mit dem AMD APP SDK 2.4 ist es jetzt gelungen die OpenCL-Laufzeitumgebung aus dem SDK herauszulösen. Der AMD Catalyst 11.3 ist das erste Treiberpaket, dessen Standardversion bereits mit der OpenCL-Laufzeitumgebung ausgeliefert wird. Sollen die Anwendungen lediglich auf einer x86 CPU (beliebiger Hersteller, muss SSE2 unterstützen) ausgeführt werden, reicht die Installation des SDKs. Aktuell unterstützt AMD neben den Windows-Betriebssystemen XP, Vista und 7 sowohl in der 32-bit als auch in der 64-bit Version auch die Linux-Distributionen openSUSE 11.3, Ubuntu 10.04 und Red Hat Enterprise Linux 6 & 5.5 (ebenfalls jeweils 32-bit und 64-bit).
Diesen Artikel bookmarken oder senden an ...