News AMD stellt erstes OpenCL-1.2-konformes Software Development Kit bereit

Dr@

Grand Admiral Special
Mitglied seit
19.05.2009
Beiträge
12.791
Renomée
4.066
Standort
Baden-Württemberg
  • BOINC Pentathlon 2011
  • BOINC Pentathlon 2012
<div class="newsfloatleft"><img src="http://www.planet3dnow.de/photoplog/images/54308/2_AMD-APP-Logo.png" border="0" alt="AMD APP Logo"></div>AMD hat für sein AMD Accelerated Parallel Processing (APP) Software Development Kit (SDK) v2.7 als erstes Unternehme die <a href="http://www.khronos.org/conformance/adopters/conformant-products" target="b">Konformität zum OpenCL-1.2-Standard</a> von der <i>Khronos Group</i> bestätigt bekommen. Zwar steht das aktualisierte SDK bereits seit Mitte Mai zum <a href="http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx" target="b">Download</a> bereit, allerdings stand die erfolgreiche Prüfung durch die <i>Khronos Group</i> noch aus. Zudem erleichtert die neue Version C++-Programmierern die Nutzung von OpenCL, da sie sich beispielsweise nicht länger um den notwendigen, aber recht umfangreichen Host Code kümmern müssen. Hierzu wurden die Erweiterungen <i>C++ Wrapper API</i> und <a href="http://developer.amd.com/Assets/CPP_kernel_language.pdf" target="b"><i>OpenCL Static C++ Kernel Language</i></a> implementiert. Entsprechend freut sich Manju Hegde, Corporate Vice President, Heterogeneous Applications and Developer Solutions, über die Erreichung dieses wichtigen Meilensteins:
<p style="clear:left;"><div style="margin: 5px 20px 20px;"><div class="smallfont" style="margin-bottom: 2px;">Zitat: Manju Hegde</div><table border="0" cellpadding="6" cellspacing="0" width="100%"><tbody><tr><td class="alt2" style="border: 1px inset;"><i>“AMD continues leading the OpenCL movement, as demonstrated with the release of our latest SDK featuring the industry’s first fully-conformant OpenCL 1.2 implementation. Our latest development tools empower developers to more easily harness the power of heterogeneous computing to help improve the user experience by making it easy to write applications that can take greater advantage of the compute capabilities of AMD’s leading CPUs, GPUs and APUs.”</i></td></tr></tbody></table></div>
Das AMD APP SDK ist AMDs Lösung zur Entwicklung parallelisierter Software auf Basis der OpenCL-Programmierplattform. Das SDK trug früher 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 "Evergreen"-Generation, sondern auch alle aktuellen x86 CPUs (muss mindestens SSE2 beherrschen). Gegenüber den acht vorangegangenen Veröffentlichungen (<a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1261469126">2.0</a>, <a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=376098">2.01</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1272989740">2.1</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1281603770">2.2</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1292582439">2.3</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1302180504">2.4</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1312454267">2.5</a>, <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1324449069">2.6</a>) hat AMD erneut weitere Features hinzugefügt (siehe Liste unten). Außerdem wurden Fehler in Compiler und Runtime behoben. Eine genaue Liste der behobenen und bekannten Probleme ist in den offiziellen <a href="http://developer.amd.com/gpu/AMDAPPSDK/assets/AMD_APP_SDK_Release_Notes_Developer.pdf" target="b">Release Notes</a> 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 <a href="http://developer.amd.com/gpu/ATIStreamSDK/ATIStreamSDKv1.4Beta/Pages/default.aspx">ATI Stream SDK 1.x</a> noch die proprietäre Hochsprache Brook+ verwendet wurde, die AMD aber nicht mehr weiterentwickelt. Ab dem Stream SDK 2.2 wird auch der <a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=381944">OpenCL 1.1 Standard</a> unterstützt, zudem bietet AMD Unterstützung für eine Reihe von Extensions (Erweiterung zum OpenCL 1.2 Standard). Dazu gehört auch die optionale herstellerübergreifende Erweiterung <i>cl_khr_fp64</i>, welche Berechnungen mit doppelter Genauigkeit ermöglicht. Seit der Version 2.7 des APP SDKs wird <i>cl_khr_fp64</i> vollständig auf allen GPUs unterstützt, die hardwareseitig dazu in der Lage sind. Hierzu gehören sämtliche GPUs aus der Southern-Islands-Generation, die Cayman-GPUs, die Cypress-GPUs, die <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1337110976">Trinity-APUs</a> und alle x86 CPUs. Eine komplette Liste der auf den einzelnen Prozessoren unterstützten Erweiterungen kann dem <a href="https://docs.google.com/gview?url=http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf">AMD APP OpenCL Programming Guide</a> auf der Seite 211 entnommen werden.

<h3>Was ist neu?</h3><ul><li><b>The OpenCL 1.2 adds the following key capabilities</b><ul><li>Host access flags for memory objects enable more efficient buffer handling and provide added protection. For example, a buffer that is created as “write only” cannot be read from the host.</li><li>Pattern based GPU buffer and image initialization can help eliminate need for certain buffer/image transfers</li><li>Memory objects migration supports transfer of buffers prior to need</li><li>New generalized image creation API</li><li>Enhanced image/buffer map operations</li><li>OpenCL 1.2 CPU device partition including partition of a CPU after addition to a context</li><li>Generalized 1D and 2D images, image arrays, and image<-> buffer interop</li><li>Libraries support including the separation of compile and link phases and the ability to compile</li></ul></li>
<li><b>The C++ Wrapper API provide the following new capabilities</b><ul><li>Defaults for platform, queue, device, etc. significantly reduce the amount of boilerplate code required</li><li>Improved simplified constructors for cl::Buffer and addition of cl::copy functions</li><li>Additional support of events when using functors</li></ul></li>
<li><b>Notable C++ features that are supported by the OpenCL Static C++ Kernel language</b><ul><li>Kernel and function overloading</li><li>Inheritance<ul><li>Strict inheritance</li><li>Friend classes</li><li>Multiple inheritance</li></ul></li><li>Templates:<ul><li>Kernel templates</li><li>Member templates</li><li>Template default argument</li><li>Limited class templates (the “virtual” keyword is not exposed)</li><li>Partial template specialization</li><li>Namespaces</li><li>References</li><li>‘this’ operator</li><li>with external symbols</li><li>Kernel reflection, the ability to query a kernel’s arguments</li><li>Support for printf as a built in function</li></ul></li></ul></li>
<li><b>Additional features supported in SDK 2.7 and the Catalyst 12.4 drivers include:</b><ul><li>Support for Asynchronous PCI transfers</li><li>Video encode using VCE Encode (Win7)</li><li>Open Encode update (12.4)</li><li>Cl_khr_fp64 is now supported on AMD Radeon HD 6900 series devices (“Cayman”)</li><li>Added OpenGL interoperability under Linux for AMD Radeon HD 7000 series devices</li><li>Stability Improvements</li><li>Performance improvements</li><li>Support for AMD Radeon HD 7000 series devices (“Southern Islands”) NPI</li><li>Support for AMD’s Second Generation APUs (“Trinity”)</li><li>Kernel Analyzer v1.12</li><li>APP Profiler v2.5</li></ul></li>
<li><b>APP KernelAnalyzer v 1.12</b><ul><li>Support for Catalyst revisions through 12.1 – 12.4.</li></ul></li>
<li><b>APP Profiler v2.5 includes several key new features, including:</b><ul><li>Support for OpenCL 1.2.</li><li>Support for collecting performance counters on APU devices.</li><li>Full support for profiling with AMD Radeon HD7000 series GPUs:<ul><li>Added support for kernel occupancy analysis.Added support for collecting performance counters for DirectCompute (DirectX 11) applications.</li><li>Addition of SALUBusy counter.</li><li>Fixed value reported for VALUBusy counter.</li><li>The values reported for LDSFetchInsts and LDSWriteInsts counters were inaccurate on AMD Radeon HD7000 series GPUs; thus, for those GPUs, those two counters have been replaced by a single LDSInsts counter.</li><li>Fixed display of kernel ISA.</li></ul></li><li>Improved OpenCL analysis module: added detection of deprecated OpenCL APIs.</li><li>Added support for showing source and destination location, as well as zero-copy status for memory transfers initiated using clEnqueueMapBuffer or clEnqueueMapImage, which is shown in the API Trace view.</li><li>Added support for Microsoft Visual Studio projects that use user-defined macros in the project settings.</li><li>Fixed the --workingdirectory (-w) command line switch (set current directory) on Linux.</li><li>Fixed some problems with importing previously generated profile results into Microsoft Visual Studio.</li><li>Changed the default installation directory on Windows to %PROGRAMFILES(X86)%\AMD\AMD APP Profiler for consistency with other AMD tools.</li><li>Stability improvements</li></ul></li>
<li><b>APP ML 1.8</b><ul><li>Support for real to complex FFT</li><li>Support for all functions in BLAS level 2 and BLAS level 3.</li></ul></li>
<li>New and updated samples</li></ul>

<b>Quelle:</b> <a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=405686">Pressemitteilung</a>

<b>Links zum Thema:</b>
<ul><li><a href="http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx" target="b">Downloads</a></li><li><a href="http://developer.amd.com/gpu/ATIStreamSDK/pages/Documentation.aspx" target="b">Documentation</a></li><li><a href="http://developer.amd.com/zones/OpenCLZone/Pages/default.aspx" target="b">OpenCL Zone</a></li><li><a href="http://developer.amd.com/afds/pages/default.aspx" target="b">AMD Fusion Developer Summit 2012</a></li><li><a href="http://developer.amd.com/zones/OpenCLZone/Events/pages/OpenCLWebinars.aspx" target="b">OpenCL Programming Webinar Series</a></li>
<li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1335117289">OpenCL-Debugger gDEBugger ist jetzt auch für Linux verfügbar</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1296059864">AMD stellt OpenCL University Kit bereit</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1337147462">x264 und HandBrake erhalten GPU-Beschleunigung</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1322593666">AMD sponsert OpenCL-Implementierung in GIMP</a></li></ul>
 
Und wie ist die Einschaetzung der Experten!? Grosse Fortschritte?
 
Ich finde es ja super das immer alles neue von AMD hier berichtet wird.
Aber wärs ned möglich zumindest kurz und knapp die News auch mal in Deutsch zu verfassen ?
In meinen Alter iss es ned so dolle mit dem Auswärts, naja das Französich aussen vor *lol*
 
Welche Informationen auf Deutsch fehlen Dir den konkret?

Das ist alles eine Frage des zeitlichen Aufwandes, wenn es dann in die tieferen Details geht, wird es für mich sehr aufwendig, da ich kein Informatiker bin. In früheren Meldungen hatte ich mir da mehr Mühe gegeben und entsprechend Zeit investiert. Die Resonanz ist dann aber nicht unbedingt so ausgefallen, das sie sich mit dem Aufwand die Waage gehalten hätte. Dann bleibt da auch noch die Frage, was für den durchschnittlichen Leser von P3D hier relevant ist.

Wenn jemand unser News-Team verstärken will, kann sie oder er sich jeder Zeit bei uns melden. Dann bleibt sicherlich auch mehr Zeit pro News übrig.
 
Ich denke, dass jeder für den die Details interessant sind, auch soweit Englisch kann, dass er die knappen Stichpunkte versteht - das ist hier kein Shakespeare. ^^ Jedenfalls kenne ich keinen Informatiker, der ohne Englisch-Kenntnisse daherkommt.
Wenn es aber dennoch einige Experten hier gibt, die tatsächlich programmieren und dementsprechendes Interesse an den Details haben, dann würde ich mich auch bereit erklären dafür Übersetzungen bereitzustellen. Schließlich wird ja nicht täglich ein neues APP SDK veröffentlicht weswegen der Aufwand überschaubar sein sollte. :)



@Topic
Zunächst einmal ist es toll, dass OpenCL 1.2 von AMD mittlerweile offiziell unterstützt wird (vorher nur Beta). Ohne Flamen zu wollen: NVIDIA hat noch nichtmal ne OpenCL 1.2 Preview draußen, was doof ist, da ich auf Arbeit noch ne GTX 280 drin stecken habe.

Zur Version selbst ist es toll, dass die ersten C++ Elemente (Klassen, Vererbung und Templates!!) einzug halten. Macht die Code-Schreiberei einfacher. Gut ist auch, dass Printf jetzt als Kern-Feature aufgenommen wurde. Sobald NVIDIA dann mal nen 1.2-Treiber bringt, sollte das Feature dann dort auch gehen (AMD und Intel konnten es schon früher per Extension). Auch die überarbeitete und vereinheitlichte Image (=1D/2D/3D-Texturen) Nutzung klingt interessant, da man Images bei größeren Problemen doch recht häufig gebrauchen kann.
 
Zurück
Oben Unten