Live von der GDC Europe 2011: Christian Heckl von Lumatix im Interview
Wenn es um 3D-Visualisierungen und Visual Effects geht, hat sich Intel-Partner Lumatix bereits einen internationalen Namen gemacht. Nun möchte das Unternehmen seine innovative Global Illumination-Technologie auch im Spielemarkt platzieren. Im Interview klärt Managing Director Christian Heckl, welche Software-Hersteller von den aktuellen Lösungen profitieren können und wie sein Unternehmen den Intel VTune Amplifier beim Software-Design gewinnbringend eingesetzt hat. Zudem gibt er eine kurze Demo des Tools Atrium Designer.
Hier das sehr sehenswerte Video dazu:
Und weitere Informationen finden Sie auf der Webseite unter www.lumatix.com.
Live von der GDC Europe 2011: Steve Ewart von Havok demonstriert die Tools
Und natürlich haben wir uns auch nicht die Chance nehmen lassen, die Havok–Tools von einem Experten vorführen lassen. Steve Ewart, Sales Engineer bei Havok, beantwortet während der GDC Europe nicht nur die Fragen der Standbesucher, sondern gewährt auch uns (und Ihnen) ein paar interessante und witzige Einblicke in die Geheimnisse von Animation und Simulation, Rendering und Texturen. Spannende Sache!
Hier das sehr sehenswerte Video dazu:
Wenn Sie mehr über Havok und deren Lösungen erfahren möchten, empfehlen wir Ihnen diese sehr gute Übersichtsseite mit Infos zu allen Tools.
Übrigens: Für unabhängige Programmierer und kleine Studios hat Hanvok ein Programm gestartet, das die Nutzung der wichtigsten Technologien auch bei Budget-Engpässen ermöglicht. Ein interessantes Projekt, über das wir gerne in der nächsten Woche noch einmal und etwas ausführlicher berichten werden.
Gleicht geht es weiter mit zwei Interviews. Christian Heckl stand mir Rede und Antwort zu Global Illumination-Technologien, und Philipp Gerasimov äußerte sich schon vor seiner Session heute Abend zu Intel Graphics Performance Analyzers, GPA 4.1.
Für Spiele-Programmierer: Intel veröffentlicht Graphics Checker 3.0 als Add-On zu GPA
Performance und Bildwiederholrate (Framerate) haben für Spiele-Programmierer höchste Priorität, die ihre Games erfolgreich auf dem Markt platzieren wollen. Intel hilft dabei mit einem Tool, das die Graphics Performance Analyzers 4.0 (GPA) optimal ergänzt: Der Graphics Checker 3.0.
Mit beiden Werkzeugen können Sie gemeinsam einen Analyse-Bericht erstellen, der die Antwort darauf gibt, wie spielbar das Game auf Windows-Systemen mit Intel Onboard-Graphik-Lösungen wie Intel HD Graphics 3000 ist.
Im Detail: Sie können mit Intel GPA Daten aus 600 Frames ermitteln und diese dann mit dem Checker analysieren. Dieser nennt Ihnen die mittleren, höchsten und niedrigsten Werte für die Framerate und misst die CPU- und GPU-Last. Danach erstellt der Checker einen Report, den Sie auf die Webseite des Intel Software Partner Programs hochladen und mit den Ergebnissen anderer Spieleprogrammierer vergleichen können. Zudem erhalten Sie dort selbstverständlich auch Tipps und Anweisungen, wie sich die Gesamtperformance Ihres Spiels verbessern lässt.
So gehen Sie vor:
- Um den Checker selbst testen, sollten Sie zunächst die aktuelle Version von Intel GPA laden und installieren. Laden Sie dann den Intel Graphics Checker .
- Starten Sie das Spiel im GPA-Monitor, und nutzen Sie den Shortcut Ctrl + Shift +B, um das Intel GPA System Analyzer HUD zu starten, um rund 600 Frames in einer Capture-Datei zu speichern.
- Folgen Sie dann den Anweisungen, um die Messergebnisse zu interpretieren, und laden Sie die Datei im Anschluss auf die Intel Software Partner Program Webseite . Dort erhalten Sie dann eine vergleichende Bewertung.
Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers
Vorgestern habe ich auf ein Webinar hingwiesen, das Intel am 28. Juni 2011 abhalten wird und das sich vor allem mit der Toolsuite Intel Graphics Performance Analyzers beschäftigt. Ziel dieses kostenlosen Online-Seminars ist der richtige Umgang mit der Tool-Sammlung und wie sich damit eigene Spiele optimieren lassen.
Das bestätigen erfolgreiche Spielefirmen. Entwicklerschmieden wie Creative Assembly (“Empire: Total War”), Kingsoft (“JX3″), Codemasters (“Dirt 2″) und Gas Powered Games (“Demigod”) setzen Intel GPA bereits eine ganze Weile erfolgreich ein. Hier ein paar Statements der Software-Häuser zu dem Profiling-Tool von Intel:
Jeder einzelne API-Call wird zeitlich erfasst und ausgegeben. Man sieht also ganz genau, wie lange der Grafikprozessor für die Berechnungen benötigt, und kann auf dieser Basis den Code entsprechend optimieren, damit das Spiel flüssig auf einem Onboard-Grafikchip läuft. (Yuri O’Donnell, Creative Assembly)
Mithilfe von Intel GPA konnten wir recht einfach zwei Störenfriede in Form von Bottleneck aufspüren und eliminieren. Das verhalf uns zu einer 30-prozentigen Leistungssteigerung des Spiels. Ganz erstaunlich! (Richard Broadhurst, Creative Assembly)
Das Hauptziel war es, die Framerate unseres Spiels “JX3″ um den Faktor 2.1 zu erhöhen, ohne dass die Darstellungsqualität der gerenderten Bilder darunter leidet. Dank Intel GPA können wir sagen: Mission accomplished! (Kingsoft)
Intel GPA ist ein wirklich cooles Tool. Es hat uns dabei geholfen, “Ghostbusters” für Intel Onboard-Grafikchips zu optimieren. Dabei ging es vordergründig um die Frage, wie wir es schaffen können, so wenig wie möglich an Details zu verlieren und gleichzeitig so viel wie möglich Merkmale zu erhalten (Schatten, Reflexionen, etc.). Ich muss sagen: wir haben mithilfe von Intel GPA die passenden Antworten gefunden. (Mark Randel, Terminal Reality)
Wir arbeiten schon seit längeren mit Tools wie VTune Performance Analyzer, Intel Thread Profiler und Intel GPA. Und ich muss sagen: Ohne diese Tools wären wir nicht in der Lage gewesen, die Framerates unserer Spiele auf ein solch hohes Level zu bringen, wie wir es heute gewohnt sind. Hoffentlich können wir auch in Zukunft dazu beitragen, diese Tools noch ein wenig besser zu machen. (Graham Watson, Codemasters)
Intel GPA lässt sich einfach bedienen und erzeugt all die Informationen, die wir für das Optimieren der Render-Pipelines und der Gesamt-Performance unserer Spiele benötigen. Darüber hinaus ist es ein prima Debugging-Tool. Intel GPA hilft uns wirklich, unsere Effizienz zu verbessern. (777 Studio, “Rise of Flight”)
Mithilfe von Intel GPA konten wir Civilization V für sämtliche am Markt befindlichen Grafikchips optimieren – von Onboard-GPUs bis hin zu Highend-Karten. Dank des GPA-Tools “Platform View” – in Kombination mit Intel TBB – konnten wir unseren Spielecode so optimieren, dass er von sämtlichen verfügbaren Prozessoren maximalen Gebrauch macht – 6-Kern-Core-i7-CPU inklusive. (Dan Baker, Firaxis)
Kostenloses Intel-Webinar für Spieleentwickler
Über die Toolsuite Intel Graphics Performance Analyzers (Intel GPA) habe ich ja hier schon des öfteren berichtet. Sei es in Form eines Grundlagenartikels oder als News hinsichtlich der Neuerungen von Intel GPA 4.0.
Wem das noch nicht genügt, sollte folgende günstige Gelegenheit nicht ungenutzt verstreichen lassen, denn Intel bietet ein kostenloses Webinar zu ihrer Toolsuite für Spieleprogrammier an. Zudem erfahren Sie dabei alles Wissenswerte zum Intel Graphics Checker, der Intel GPA sinnvoll ergänzt, indem es überprüft, in welchem Maße das programmierte Spiel auf einem PC mit Intel HD Graphics spielbar ist. Hierzu bedient sich der Graphics Checker sämtlicher Daten, die mithilfe von Intel GPA generiert worden sind.
Das kostenlose Intel-GPA- und Graphics-Checker-Webinar findet am 28. Juni 2011 statt, und zwar von 10 bis 11 Uhr Pacific Standard Time (PST), also von 19 bis 20 Uhr MESZ. Während dieses einstündigen Online-Trainings werden Dave Valdovinos und Omar Rodriguez von Intel unter anderem folgende Aspekte näher beleuchten:
- Warum eignet sich der PC mehr denn je als “Spielkonsole”?
- Wie erreicht man gemeinsam mit Intel GPA und Graphipcs Checker optimierten Spielecode?
- Wie generiert man mithilfe von Intel GPA relevante Daten für den Graphics Checker?
- Wie profitieren die Teilnehmer des Intel Software Partner Program vom Hochladen ihrer Testdaten auf den zugehörigen Intel-Server?
- Wie kommt man an die Tools kostenlos heran?
- Wie setzt man beide Tools richtig ein (Online-Demos)?
- und vieles mehr…
Sie müssen sich lediglich mit Ihrem Namen und Ihrer E-Mail-Adresse registrieren. Ich wünsche viel Spaß mit Dave und Omar!
Live-Berichterstattung von der dotnet Cologne 2011 – Teil 3
Und nun zu den Developer-Tools, die jeder Parallel-Programmierer kennen sollte. Zumindest deren Unterschiede, Stärken und Schwächen, denn so fällt es nicht nur leichter, sich für das richtige Werkzeug zu entscheiden, sondern auch Fehler im Code zu minimieren. Aber natürlich lassen sich die Tools im Einsatz auch kombinieren.
Merken Sie sich auf jeden Fall diesen Namen: Parallel Building Blocks. Denn diese Toolsuite vereint drei der wichtigsten Werkzeuge für Parallel-Programmierer: Cilk Plus, Threading Building Blocks (TBB) und die neuen Intel Array Building Blocks (ArBB), die derzeit noch in der Beta-Phase sind.
Cilk und Intel Array Building Blocks (ArBB) werde ich hier näher vorstellen.
Cilk Plus
Cilk Plus ist unbestritten das einfachste Tool und auch für Einsteiger sicher gut geeignet. Streng genommen sind sich Cilk und OpenMP recht ähnlich. Beide produzieren schnellen, parallelen Code ohne viel Overhead. Und beide werden von Intel Compilern unterstützt. Das gilt im Übrigen auch für OpenMP in der Version 3. Es gibt aber auch gravierende Unterschiede, die Cilk für Entwickler deutlich attraktiver machen als OpenMP.
Das beginnt schon bei der Bedienung. Wer sich jemals mit Cilk auseinandergesetzt hat, wird sich an das Schlüsselwörter-Prinzip erinnern. Mit den drei Kommandos cilk_spawn, cilk_sync, cilk_for erledigen Sie die wichtigsten Aufgaben im Code. Dabei kontrolliert die Cilk Plus Runtime die Threads und deren zeitliche Ausführung. Gerade dieser sehr zuverlässige Cilk Runtime Scheduler hebt sich wohltuend von OpenMP ab. Die Zahl der Threads im Code wird hierbei automatisch den vorhandenen Prozessorkernen angepasst. Der Entwickler kann dies aber auch korrigieren, wenn er das möchte.
Auch auf Data Races hat Cilk Plus eine Antwort. Natürlich lassen sich Variablen auch mit der Mutex-Methode schützen, aber Cilk Plus geht hier deutlich eleganter vor, indem es Hyperobjects nutzt. Das sorgt für eine deutliche bessere Performance.
Herauszuheben sind last but not least die Array Notations in Cilk Plus. Darüber freut sich der Compiler, der Vektoranweisungen viel besser verarbeiten kann als Schleifen. Weitere Infos gibt es übrigens auf der sehr guten Seite www.cilk.com.
Intel Threading Building Blocks (TBB)
Die Intel Threading Building Blocks (TBB) bieten eine C++-Laufzeitbibliothek und sind als Open Source oder per Compiler verfügbar. Sie sind plattform- und sprachenunabhängig und adressieren vor allem fortgeschrittene Developer. Mit anfängertauglichen Parallelfunktionen wie „parallel_for“ statt „for“ werden die TBB aber auch zunehmend für Einsteiger interessant.
Intel Array Building Blocks (ArBB)
Die jüngste Sprössling der Parallel Building Blocks heißt Intel Array Building Blocks (ArBB).
Vereinfacht ausgedrückt erledigen die ArBB folgenden Job für Code in C++: Sie parallelisieren und optimieren nativen Code, und zwar genau für die Hardware, für die er konzipiert wurde und geben den Code an den Compiler zurück.
Vorteil für den Entwickler: Er muss den Code auch für unterschiedliche Pattformen nur ein einziges Mal schreiben, kann ihn mit ArBB neu kompilieren und dann automatisch auf die Ziel-Hardware ausrichten. Wer es selber ausprobieren möchte: ArBB steht als Beta zum kostenlosen Download bereit.
So, das war’s aus Köln. In der nächsten Woche werde ich wieder live berichten – dann vom ISN Black Belt Event in München. Schönes Wochenende!
Live-Berichterstattung von der dotnet Cologne 2011 – Teil 2
Hier nun Teil 2 (hier geht’s zum ersten Teil) meiner Berichterstattung von der dotnet Cologne. Mittlerweile habe ich nicht nur spärliches Mittagessen hinter mir (gab nur noch lauwarme Frikadellen, den Rest hat die Schar der Entwickler in geschätzten sieben Minuten geplündert. Wieder mal ein Beweis für den Leitspruch „Wer zu spät kommt…“). Aber lassen wir das. Nahrhafter als der Snack war auf jeden Fall die sehr detaillierte Präsentation von Hubert Haberstock zu den aktuellen Intel Developer-Tools für Parallel-Programmierung.
Klasse: Seine Ausführungen gingen bis auf Code-Ebene, und zwar immer am gleichen Beispiel. So konnte man wunderbar vergleichen, wie sich nicht nur die Code-Syntax, sondern auch die Anforderungen an den Programmierer ändern, je nachdem, welches Tool er bevorzugt wird Aber der Reihe nach:
Unter dem Motto „Parallelisierung und Skalierbarkeit in nativer C/C++ Softwareentwicklung – leichter als je zuvor“ hat Hubert zunächst die Unterschiede der Programmierung mit Managed und nativem Code erläutert. In der Kürze: Managed Code wird übersetzt und dann in der Laufzeitumgebung ausgeführt, nativer Code hingegen setzt dagegen direkt auf der Hardware auf.
Natürlich ist es deutlich komplizierter, nativen Code zu programmieren. So muss der Entwickler für Thread-Sicherheit sorgen. Die Mühen werden aber belohnt, denn der Code lässt sich sehr einfach vektorisieren. Zudem nutzt die fertige App die Power der Hardware voll aus und läuft daher schneller. Zu guter Letzt erhält und behält der Developer dank nativem Code jederzeit volle Kontrolle über die Hardware – zum Beispiel CPU-Kerne und GPU.
Sandy Bridge IVY kommt
Um das Thema Parallelisierung wird in der Zukunft kein professioneller App-Entwickler für PC-Anwendungen herumkommen. Das ist keine persönliche Einschätzung, sondern eine Prognose, die sich sehr leicht nachvollziehen lässt, wenn man einen Blick auf die kommenden Prozessorfamilien wirft. Nach Sandy Bridge wird Sandy Bridge IVY kommen, die nächste Generation der Mehrkernprozessor-Systeme im 22-Nanometer-Herstellverfahren. Nur paralleler Code ist dann in der Lage, den Geschwindigkeitsvorsprung zu nutzen, den die Hardware vorgibt. Und daran wird sich nichts mehr ändern
Parallelisieren? Gerne! Aber wie?
Es gibt sehr viele unterschiedliche Möglichkeiten, um seriellen Code zu parallelisieren, es gibt kostenlose und sehr teure Tools. Und es gibt einsteigerfreundliche Methoden und sehr komplizierte, die selbst Profis vor Herausforderungen stellen. Hubert hat das sehr gut demonstriert, indem er Compiler-Switches für Autovektorisierung (sehr einfach) nativem Threading via Win 32-API oder POSIX gegengestellt hat. Threading ist sehr kompliziert, belohnt den Entwickler aber mit hoher Kontrolle über Apps und Hardware und großer Thread-Sicherheit.
Mit seinen Werkzeugen deckt Intel ein breites Spektrum an Parallelisierungs-Tools ab, angefangen vom Einsteiger-freundlichen Cilk über die Threading Building Blocks (TBB) bis hin zu den neuen Intel Arrray Buidling Blocks (ArBB).
Diese drei Tools werde ich im nächsten Blog-Beitrag detailliert beschreiben und vergleichen und damit den Report von Huberts sehr gutem Vortrag fortsetzen.
Live-Berichterstattung von der Dotnet Cologne 2011 – Teil 1
Start frei für die dotnet Cologne 2011 – eine der kleineren, aber durchaus wichtigen Entwicklerkonferenzen für den .NET-Bereich.
Positiv fällt auf, dass die Location wirklich schön ist. Freundliche Konferenzräume, heller, wenn auch sehr kleiner Ausstellungsbereich. Negativ bleibt festzuhalten, dass es im Ausstellungs-und Pausenbereich absolut keine Stühle gibt (ich sitze auf einer Kiste). Liebe Veranstalter, das könnt ihr beim nächsten Mal sicher besser machen.
In diesem Jahr nehmen die Themen Silverlight und Windows Phone 7 sehr viel Raum ein. Unser Highlight ist aber selbstverständlich der Vortrag zum Thema „Parallelisierung und Skalierbarkeit in nativer C/C++ Softwareentwicklung – leichter als je zuvor“ von Hubert Haberstock.
Ich werde live davon bloggen, hatte aber schon vorher die Möglichkeit, Hubert ein paar Fragen zu stellen.
Wen adressiert Intel Parallel Studio XE? Welche Programmierer profitieren am meisten davon?
Parallel Studio XE ist ein Visual Studio-Plug-In, das Parallelisierung von nativem Code unter C und C++ ermöglicht. Es bietet diverse Multithreading-Methoden und Tools, die Entwicklern helfen, auf der Hardware-Ebene schnellere und fehlerbereinigte Apps zu programmieren. Auch Fortran wird von Parallel Studio unterstützt.
Von welchen Funktionen profitieren Anwender?
Vor allem natürlich von der Vektorisierung. Programmierer können ab sofort Multimedia-Register-OPs verwenden wie AVX, und so mit einfachen Methoden parallelen Code produzieren. Zudem profitieren Entwickler von der Möglichkeit, ohne Managed Code direkt die Hardware zu steuern.
Stichwort Debugging: Was können Programmierer von den Debugger-Erweiterungen erwarten?
Es gibt eine Parallel Debugging Extension, die selbstverständlich nicht den Microsoft-Compiler ersetzt, unter Cilk, OpenMP und TBB (Intel Threading Building Blocks) aber sehr gute Dienste leistet.
Data Races und Bootlenecks gehören zu den häufigsten Schwachstellen in parallelem Code. Was leistet hier Parallel Studio XE, um Fehler dieser Art zu vermeiden?
Parallel Studio XE bietet leistungsstarke Performance- und Analyse-Tools, die dazu beitragen, typische Fehlerquellen im Code offenzulegen, selbstverständlich zunächst im seriellen Code. Allen voran der VTune Amplifier, der Bottlenecks aufspürt. Ein weiteres wichtiges Tool ist der Inspector, mit dem Entwickler sehr schnell Data Races und Deadlocks erkennen können. Insofern arbeitet der Inspector als Debugger. Als sehr praktisch erweist sich die Option, den kompletten Code zunächst mit dem Statitc Security Analyzer einer sehr schnellen, statischen Analyse zu unterziehen und im Anschluss Codebestandteile in Echtzeit zu prüfen. Der Programmierer weiß dann, wie sich der Code tatsächlich innerhalb der App verhalten wird.
Intel Array Building Blocks steht mit der Beta-Version in den Startlöchern. Kannst du unseren Lesern das Konzept hinter den Intel Array Building Blocks kurz erklären?
Intel Array Building Blocks sind Spracherweiterungen für parallele Patterns, die eine Parallelisierung schon auf Code-Ebene ermöglichen. So werden unter Intel Array Buildung Blocks (ArBB) „for“-Loops durch Vektoranweisungen ersetzt. Ein zweiter Aspekt: Die dynamische Laufzeitumgebung passt den Code auf die Target-Architektur an, also exakt auf die Hardware, für die der Code konzipiert wurde.
Letzte Frage: Mit welchen Tools zur Parallelprogrammierung sollten sich Entwickler unbedingt beschäftigen, um effizienter zu arbeiten?
Keine Frage, das ist Parallel Studio – ein komplettes Öko-System aus optimierenden Compilern, Libraries, Tuning-Tools und Analyzer-Werkzeugen für native Code-Umgebungen. Nicht nur, aber auch gerade für Einsteiger ein unverzichtbares Tool-Set.
Heute nachmittag geht es weiter. Dann werde ich selbstverständlich auch von Huberts Präsentation berichten.
Parallelisierungstools für Linux- und Spieleprogrammierer
Zum Wochenanfang gibt es hier zwei hilfreiche Download-Tipps für Programmierer. Der erste wendet sich an Spiele-Entwickler: Colony ist ein recht neues parallelisiertes Tech-Beispiel, das Ansammlungen und Bewegungen von bestimmten Spieleeinheiten in 3D-Umgebungen simuliert. Die Bewegungen der Figuren werden über eine Ray-Casting-Technologie berechnet. Intel hat dazu den Source Code und die Binaries veröffentlicht. Beides kann Ihnen helfen, eine große Zahl bewegter Einheiten im Spielgeschehen zu steuern – ohne die Prozessorlast wesentlich zu erhöhen.
Hierzu gibt es auch ein Video:
ISAT
Der zweite Tool-Tipp wendet sich an Linux-Entwickler unter C/C++: Kennen Sie schon das kostenlose ISAT? ISAT steht für Intel Software Autotuning Tool und wurde im Dezember von Intel veröffentlicht. Es handelt sich dabei um ein Tuning-Werkzeug, das automatisch nach optimalen Werten für Programm- und Code-Parameter sucht, um die Anwendung zu beschleunigen. Gute Dienste leistet es etwa bei Cache-Blocking-Faktoren in Matrix-Berechnungen, bei der Task-Granularität in Intel-TBB und OpenMP-Abschnitten. Die Optimierungen im Code werden dann automatisch anhand der vorherigen Suchergebnisse vorgenommen. Zudem liefert ISAT auch eine grafische Analyse der Performance in einem 3D-Modell, die dem Entwickler ein besseres Verständnis der empfohlenen Tuning-Prozesse ermöglicht.

ISAT veranschaulicht die Performance-Analyse im 3D-Modell
Das Tool funktioniert unter 32- und 64-Bit Linux; Python (Version 2.4 und 2.9) bei allen gängigen C/C++ Compilern.
Clojure
Und noch einen interessante Fundstelle. Der moderne Lisp-Dialekt Clojure hat sich vor allem in der so genannten nebenläufigen Programmierung einen Namen gemacht, weil Closure in der Java Virtual Machine läuft und mit Java Runtime eng verknüpft ist.
Jetzt beweist Clojure seine dezidierten Möglichkeiten auch im Bereich Multicore, vor allem beim Multithreading. Einen gut verständlichen Grundlagenbeitrag zu Clojure und Multicore habe ich bei Heise gefunden.
OOP 2011 – Ralph de Wargny zu Multicore, Manycore, Intel Parallel Studio und mehr
Während der OOP 2011 in München hatte ich die Gelegenheit, mit Ralph de Warny von Intel dieses Videointerview zu führen. Ralph erzählte mir ein wenig über seinen Vortrag, den er auf der OOP gehalten hat, über die Themen Multicore und Manycore und die Tools Parallel Studio und Parallel Studio XE. Außerdem gewährte er eine kurzen Einblick in die Zukunft der Parallelprozessoren.
Sandy Bridge: Grafik-Power und Power-Tools für Entwickler
Wie Ende der vergangenen Woche versprochen, folgt heute eine Übersicht der wichtigsten Grafikverbesserungen, die Intel mit Sandy Bridge einführt und ein paar wirklich gute Developer-Ressourcen und Code-Beispiele – denn in den USA haben einige Programmierer bereits losgelegt und konnten mit ihren Samples den Performance-Gewinn der neuen Prozessorgeneration für Spiele(r) eindrucksvoll unter Beweis stellen.
Zunächst aber die Übersicht der wesentlichen Grafik- und Power-Technologien, die Sandy Bridge auf den Core-Chips bietet. Bislang habe ich diese Funktionen eher tröpfchenweise beschrieben, hier nun der Gesamtüberblick.
- Verbesserte Grafikleistung durch Integration von GPU und CPU auf einem einzigen Chip (Die). Per Intel Switchable Graphics können Notebook-Anwender bei sehr grafikintensiven Spielen wie FIFA 11 ohne Neustart des Computers auf die vorhandene diskrete Grafikkarte umschalten. Allerdings muss der jeweilige Rechner dieses Feature explizit unterstützen.
- Turbo Boost 2.0: Turbo Boost wurde von Intel für Sandy Bridge optimiert und beschleunigt serielle Anwendungen, indem sie die Taktfrequenz einzelner Kerne anhebt und damit die Geschwindigkeit um bis zu 75 Prozent steigert. Turbo Boost funktioniert auch bei der GPU und prüft automatisch, ob die Prozessorkerne oder die Grafik beschleunigt werden soll. Sie geht dabei auch bis zu 25 Sekunden lang über das TDP-Limit hinaus. So können einzelne oder alle CPU-Kerne kurzfristig um bis zu 700 MHz “übertaktet” werden.
- Gemeinsamer Last Level Cache: Die Grafik-Engine ist nun direkt an den Cache des Prozessors angebunden. Deswegen auch die neue Bezeichnung Last Level Cache statt L3-Cache. Der Cache steht sowohl den Kernen als auch der Grafikeinheit zur Verfügung. Die Grafikleistung profitiert dabei von einem 64-fach höheren Durchsatz als beim bisherigen Speicherzugriff.
- Intel QuickSync Video: Videos lassen sich deutlich schneller für mobile Geräte wie iPhone und iPad konvertieren. So zeigen Intel-interne Tests, dass mit QuickSync Video nur noch vier Minuten Konvertierungszeit für eine Minute Video anfallen. Das ist schneller als mit der schnellsten diskreten Grafikkarte, die derzeit erhältlich ist.
- Intel InTru 3D: Stereoskopische 3D-Blu-ray-Wiedergabe in Full HD 1080p-Auflösung über HDMI 1.4.
- Intel Clear-Video-HD: Qualität und Farbdarstellung bei der HD-Wiedergabe wurde nochmals deutlich verbessert.
- Advanced Vector Extensions (AVX) : Neuer Befehlssatz für Video- und Bildbearbeitung, Gaming. 3D-Modellierung, wissenschaftliche Simulationen und Finanzanalysen. AVX beschleunigt die anfallenden Berechnungen mit einer Verdoppelung der Registerbreite von 128 auf 256 Bit. Hierbei wurde auf volle Komptabilität zu den bisherigen Befehlssätzen wie beispielsweise SSE4 geachtet.
- Intel HD Graphics 3000: Mehr 3D-Leistung für Highend-Games wie Shooter. Die dynamische Grafikfrequenz liegt bei maximal 1350 MHz. Unterstützt werden DirectX 10.1 und OpenGL 3.0.
Und nun zu den Ressourcen, die Ihnen diese neuen Grafik-Technologien aus Entwicklersicht näher bringen, Code-Beispiele nennen und auch den einen oder anderen Insider-Tipp verraten:
- Intel Integrated Graphics Performance Developer’s Guide für Intel HD Graphics: Eine Leitfaden für Spiele-Entwickler, die ihren Code konsequent auf die neuen Funktionen von Sandy Bridge ausrichten möchten. Natürlich steht dabei Intel HD Graphics im Vordergrund. Es geht aber auch um den älteren Intel Graphics Media Accelerator mit Fokus auf das Thema Leistungsanalyse unter DirectX.
- AVX Cloth ist ein Beispiel, das die Möglichkeiten der Vektorprogrammierung mit 256 Bit breiten Registern verdeutlicht. Dazu gibt es Screenshots, ein Video und natürlich den Source Code und die Binaries zum Download.
- Onloaded Shadows ist eine Technik, mit der Shadow Maps asynchron auf der CPU berechnet werden. Erfahren Sie hier, wie Sie mit Hilfe von Cascades einen optimalen Lastenausgleich zwischen CPU und GPU herstellen.
- Sample Tweaker beschreibt, wie die Grafikdemo Ocean Fog mit Hilfe von Intel Integrated Graphics optimiert wurde. Dabei konnte die vierfache Geschwindigkeit (von 40 FPS auf 160 FPS) gemessen werden, indem neue Technologien angewendet wurden, die beispielsweise die Texturgröße oder die Schärfe verringert haben – ohne nennenswerte Auswirkungen auf die Qualität.
Wie 3D-Spiele von Sandy Bridge profitieren
Die amerikanischen Kollegen vom ISN-Blog haben die Möglichkeiten beleuchtet, die Sandy-Bridge-basierte Prozessoren für Spiele-Programmierer bietet. Ein interessanter Artikel, der auch zur viel diskutierten GPU-Leistung interessante Fakten nennt.
Die Programmierer des Abenteuer-Spiels Ghostbusters haben ihre ursprüngliche Entwicklungsarbeit mit dem Intel-Tool Graphics Performance Analyzers und den heute verfügbaren Möglichkeiten verglichen, die Sandy Bridge mit den integrierten Beschleunigungs-Technologien bietet.
Jetzt, auf Sandy Bridge-Chips, lässt sich Ghostbusters störungsfrei in einer Auflösung von 1024×768 Pixeln spielen, ohne dass bestimmte Features hätten deaktiviert werden müssen. Und das Beste: Ohne zusätzliche Grafik-Hardware! Will heißen: Selbst bei grafisch anspruchsvollen Spielen wie Ghostbusters wird der Anwender jetzt und auch künftig keine teure Grafikeinheit hinzukaufen müssen – sofern nicht aberwitzige Auflösungen und Spezialeffekte benötigt werden.
Was bedeutet das für Spiele-Entwickler? Die Programmierung und Evaluierung des Codes kann auf einem handelsüblichen Notebook erfolgen, um ein realistisches Spiele-Erlebnis zu bekommen. Allerdings sollte man Sandy Bridge nicht auf die Grafikpower der GPU reduzieren. Das leistungsstärkste Mitglied der neuen Prozessorfamilie, der Intel Core i7 bietet nämlich 4 Kerne, 8 Threads und Turbo Boost 2.0. Ein ganze Menge an Rechenpower also, auch jenseits von Ghostbusters und Co.
Diese Leistungsmerkmale bieten Entwicklern sowohl für Visual Computing als auch für Parallel-Programmierung viele neue und einfachere Möglichkeiten, um beindruckende visuelle Effekte mit weniger Code zu erzeugen.
Bei den grafischen Berechnungen wird die Last auf die im Chip integrierten Kerne und die GPU verteilt, so dass einzelne Komponenten nicht überlastet werden. Aber machen wir uns nichts vor: Egal, wie viel Code auf parallel rechnende Prozessorkerne verteilt wird, es bleiben immer auch Anweisungen, die seriell abgearbeitet werden. Und genau diese Sequenzen wird Sandy Bridge mit Turbo Boost 2.0 adressieren und beschleunigen. Der angesteuerte Kern wird dabei in einer höheren Frequenz arbeiten als die anderen. Gute Aussichten für Programmierer und Spieler!
Einige Beispiele etwa zur Vektorberechnung mit der SSE-Erweiterung AVX oder in Spielen zur Darstellung des Schattens beweglicher oder unbeweglicher Körper (Shadow Map) hat Intel im Web veröffentlicht. Ich werde die wichtigsten davon am Montag in diesem Blog vorstellen.
An dieser Stelle darf ich Ihnen aber bereits die Intel Graphics Developer’s Guides ans Herz legen, eine umfassende Einführung in die Grafiktechnologien der neuen Prozessorgeneration.
Intel Threading Challenge 2010: Von Katzen und Pokerkarten
Anfang Juni war es so weit: Intel startete seinen nächsten Parallel-Programmier-Wettbewerb, der sich aus zwei Phasen und insgesamt sechs Aufgaben zusammensetzt. Mittlerweile hat der Contest Phase 2, Aufgabe 3 erreicht, und wieder gibt es schöne Preise zu gewinnen.
Allerdings hat Intel vor den Gewinn das Denken gesetzt, und so kommt man auch bei der dritten Aufgabe der zweiten Phase nicht umhin, seine Parallelprogrammierkünste unter Beweis zu stellen. Dass es sich dabei um eine Aufgabe aus der Welt des Pokers handelt, ist (a) natürlich sehr amerikanisch und (b) sehr populär, da sich Poker schon lange größter Beliebtheit erfreut – und das nicht nur in den USA.
Dass es sich bei der zu Grunde liegenden Pokerart um die bei uns eher unbekannte Variante Pai Gow Poker handelt, spielt keine wirkliche Rolle. Alleine die Anzahl der zum Spiel gehörenden Karten (7 vs. 5 beim regulären Poker) variiert, der Rest ist wie immer. Die Aufgabe besteht darin, ein parallel programmiertes Tool zu entwicklen, das so schnell wie möglich heraus findet, mit welchen Kartenkombinationen ein einzelnen Spieler gegen die Bank gewinnen kann, welches das zweitbeste Blatt ist, das drittbeste, usw.
Die komplette Beschreibung und sämtliche Parameter findet ihr auf der Contestseite. Dort ist auch den Hinweis hinterlegt, dass zur Ermittlung des Gewinners die notwendige Zeit herangezogen wird, die das programmierte Tool verbraucht, bis es sämtliche Kartenkombinationen herausgefunden hat. Auf dieser Seite könnt ihr das Ergebnis eures Schaffens einreichen.
Ach ja: “Pai Gow” ist lediglich der Einsteiger-Wettbewerb des Intel Threading Challenge 2010. Beim Master-Challenge geht es um ein Spiel, das sich Katze und Hund nennt. Falls ihr also die echten Herausforderungen schätzt, solltet ihr dort auf jeden Fall auch mal vorbei schauen.
Für beide Aufgaben gilt, dass ihr sie bis spätestens 11. Oktober, 24:00 Uhr (PDT) eingereicht haben müsst. Und was ihr alles gewinnen könnt, erfahrt ihr auf dieser Seite. Und um das Lösen der Aufgaben ein wenig zu erleichtern, bietet Intel allen Teilnehmern Zugriff auf das Intel Manycore Testing Lab und die notwendigen Software-Tools. Damit kommen auch all diejenigen in den Genuss eines Multicore-Rechners, die keinen zuhause rumstehen haben.
Und jetzt: viel Spaß mit der 3. Aufgabe der 2. Phase der Intel Threading Challenge 2010!
Wie sich 3D-Spiele optimieren lassen
Ja doch, die Fußball-WM 2010 ist Geschichte, hat einen neuen Weltmeister gekürt und England war mal wieder verdammt früh Zuhause. Das hat aber den Kollegen Leigh Davies von Intel UK nicht davon abgehalten, seine Techsession anlässlich der Develop 2010 mit einem Fußballspiel-Beispiel zu eröffnen.
Er hatte nämlich seinerzeit mit einem echten Problem zu kämpfen: Warum ist dieses Soccer-Game, das er gerade entwickelte, nur so langsam? Also haben er und seine Kollegen nach und nach alles ausgeblendet, was auszublenden war: Stadium, Spieler, etc. Bis einer von den Programmierern auf die Idee kam, sich den Ball mal genauer anzusehen, und siehe da: Das runde Leder (das ja eigentlich gar nicht rund ist) bestand aus 5.000 Polygonen! Und das in einer Zeit, als sich 3D-Objekte eher aus 300 Polygonen zusammensetzten. Tja, damit war der Schuldige also gefunden (wie so oft der Ball).
Und, was lehrt uns das? Dass es beim Optimieren von 3D-Spielen oft mit dem Teufel zugeht und man auf den ersten und zweiten Blick gar nicht erkennt, warum bestimmte Spielsequenzen ruckeln oder auf einem Netbook beispielsweise gar nicht laufen. Wie gut, dass es mittlerweile für solche Herausforderungen Tools gibt wie die Intel-Suite Graphics Performance Analyzers.
Das Gute an Intel GPA ist ihre Flexibilität: Egal, ob man sein 3D-Spiel auf einem Core-i3- oder i5-System mit integrierter Grafik testen will oder gar auf einer diskreten Grafikkarte – das Toolset unterstützt beide Spielarten. Intel GPA besteht übrigens aus drei Teilen: System Analyzer, Frame Analyzer und Platform View. Mit dem System Analyzer lassen sich grundlegende Dinge wie die Framerate, Prozessorauslastung, Vertex-Lock-Zeiten und einiges mehr herausfinden.
Mit dem Frame Analyzer begibt man sich dann auf die eingegrenzte Fehlersuche, indem man beispielsweise eine spezielle Szene herausgreift und diese genau analysieren lässt und somit den Fehler (hoffentlich) findet. Und mithilfe von Platform View lernt man alles über die im Hintergrund laufenden Threads, die sich zur Laufzeit ergeben. Dies schärft das Verständnis für das Spiel “unter der Haube” und erlaubt eine genaue Analyse, wo es klemmen könnte. Hierfür muss man allerdings ein paar Zeilen Quellcode einfügen, im Gegensatz zum System und Frame Analyzer.
So, und wer jetzt mehr wissen will über Intel GPA, dem sei dieser englischsprachige Artikel empfohlen oder dieses Video von der GDC09. Oder ihr wartet auf unsere Berichterstattung live von der GDC 2010, die vom 16. bis 18. August in Köln stattfinden wird. Dort wird Intel GPA ebenfalls vertreten sein.
Lesetipp: Netbook-Apps unter MeeGo parallelisieren
Den besonders aufmerksamen Lesern des Software Dev Blog dürfte der Name Edmund Preiss nicht unbekannt sein. Edmund liefert immer wieder Beiträge rund um das Thema Parallelisierung für die Fachzeitschrift Elektronik Industrie, die dankenswerterweise sowohl offline als auch online verfügbar sind.
Sein aktueller Artikel beschäftigt sich im Grunde mit zwei Themen: Mobile und Multicore. Denn zum einen geht es um Atom-Prozessoren und zum anderen um das Parallelisieren von Netbook-Apps. Streng genommen funktioniert das Multithreaden von mobilen Anwendungen ganz ähnlich wie auf Notebook- oder Desktop-Plattformen. Allerdings widmet Edmund seinen Beitrag nicht der Entwicklung von Windows-Software, sondern der von linux-basierten Anwendungen.
Hierzu bietet Intel nämlich zwei spezielle Entwicklungssuiten, die sich beide im Linux-Umfeld einsetzen lassen. Die Tools nennen sich Intel Application Software Development Tool Suite und Embedded Software Development Tool Suite. Die Tools-Sammlungen unterscheiden sich vor allem im Debugger, nämlich dem JTag-Debugger.
Mithilfe von Edmunds Artikel lernt man die Hauptbestandteile der Entwicklersuites kennen. Das ist vor allem…
… der Intel C++-Compiler, der an die Besonderheiten der Atom-Prozessoren angepasst wurde,
… die IPP-Bibliothek, die mehr als 10.000 thread-sichere Funktionen für Multimedia-Apps umfasst,
… der VTune Performance Analyzer zum Aufspüren von Programmengpässen, also Hotspots,
… der Intel JTag-Debbuger, mit dem sich host-basiert Fehler aufspüren und eliminieren lassen,
… der Applikationsdebugger, der eine Ergänzung zum JTag-Debugger darstellt.
Klar, dass sich sämtliche Tools innerhalb der linux-typischen Eclipse-Umgebung einsetzen lassen. Das gewährt das gewohnte Entwickeln und Testen von mobilen Linux-Programmen für MeeGo und andere Derivate.
Fünf Tipps für das Parallelisieren von Anwendungen
Gerade habe ich bei den Kollegen des SoftTalk-Blogs eine interessante Top-10-Liste gefunden. Die geht der Frage nach, wie aus seriell programmierten Apps parallel ablaufende Anwendungen werden, die im Zeitalter von Multicore-Systemen möglichst gut skalieren und sämtliche vorhandenen Prozessorkerne für die Ausführung der Software optimal nutzen. Daher folgen jetzt meine fünf Lieblingstipps mit entsprechenden Kommentaren und Verweisen.
Tipp 1: Mithilfe bestimmter Compiler-Einstellungen lassen sich mit ganz wenig Aufwand Programme nahezu doppelt so schnell ausführen. So sorgt beispielsweise der Switch /Qopenmp dafür, dass vorher eingefügte OpenMP-Pragmas vor allem Schleifen parallelisieren. Ok, hierzu ist naürlich schon ein wenig Handarbeit notwendig. Aber es lohnt sich!
Tipp 2: Die registernahe Parallelprogrammierung mithilfe von SSE-Operationen bietet ebenfalls eine ganze Menge an Beschleunigungspotenzial. So lassen sich mit wenigen zusätzlichen Programmcodezeilen beispielsweise Bildverarbeitungsalgorithmen erheblich beschleunigen. Also ohne größeren Aufwand.
Tipp 3: Beim Einsatz entsprechender Optimierungstools wie Intel VTune Analyzer sollte man tunlichst darauf achten, die zu parallelisierende Software nicht vollständig analysieren zu wollen, da VTune beispielsweise einige tausend Events erstellt. Dabei geht es doch meist nur um wenige Flaschenhälse, deren Beseitigung die Anwendung spürbar beschleunigt. Das sind beispielsweise nicht vollständig ausgeführte Funktionen, mangelhafter Datenaustausch zwischen CPU und Speicher, ungewollte Leerläufe und Cache Misses.
Tipp 4: Beim Parallelisieren sollte man auf die wirklich kritischen Bereiche der Anwendung achten. Das sind vor allem die rechenintensiven, zeitraubenden Funktionen und Module, auf die es gilt sich beim Parallelisieren zu konzentrieren. Tools wie der Parallel Amplifier können dabei helfen, genau diese Programmbereiche aufzustöbern. Dabei ist natürlich auch ein wenig Kenntnis bezüglich der verwendeten Algorithmen und ihres Ressourcen-Hungers hilfreich.
Tipp 5: Oberste Priorität sollte sein, dass die parallelisierte Anwendung keine Laufzeitfehler produziert (Stichworte: Race Conditions, Dead Locks, etc.). Auch hierfür empfiehlt sich der Einsatz geeigneter Software-Tools wie des Intel Parallel Inspector, der mögliche Verklemmungen aufspürt, indem das Programm ausgeführt wird und sich so die eventuellen Ergebnisse ermitteln lassen, die zu Laufzeitfehlern führen können.
Visual Studio 2010 jetzt auf Deutsch verfügbar
Vor gut zwei Wochen hat Microsoft Visual Studio 2010 vorgestellt, und heute schon hat Kay Giza auf seinem Blog gemeldet, dass die deutschsprachigen Varianten des Entwickler-Tools samt dem neuen Framework .NET 4 zum Download bereit stehen. Da es sich allerdings um diverse Pakete handelt, habe ich mir die wichtigsten Infos mal genauer angesehen und fasse sie für euch übersichtlich zusammen.
- Zunächst einmal unterscheidet Microsoft in Sachen VS-2010-Download zwischen registrierten und nicht-registrierten Entwicklern. Alle, die also ein MSDN-Abo ihr eigen nennen, können sich Visual Studio 2010 und .NET 4 downloaden.
- Auch nicht-registrierte Anwender kommen in den Genuss von VS 2010, allerdings nur in der Testversion, die sich für 90 Tage auf dem Rechner installieren lässt. Dafür kostet die Trial-Variante natürlich nix. Test-Willige können dabei zwischen diversen Varianten wählen: Ultimate, Professional und Test Professional, und das entweder als ISO-Datei oder per Webinstaller. Außerdem braucht ihr noch die .NET-4-Laufzeitumgebung sowie diverse Tools, mit denen ihr eure Applikationen testen könnt. Dazu gehören die F#-Runtime, die Office-Runtime, der Team Foundation Server 2010 und der Team Explorer.
Ach ja, Kays Blogbeitrag hält noch weitere nützliche Infos bzw. Links zu Visual Studio 2010 parat: den Hinweis auf ein Einführungsvideo, die Empfehlung eines E-Books zum Thema VS-Migrierung, einen Workshop zum Erstellen von Cloud-Anwendungen mit VS 2010 und viele andere gute Tipps und Internet-Links. Also, ein Besuch des Giza-Blogs lohnt sich.
Ach ja: Für Visual Studio 2010 wird gerade die nächste Version der Multicore-Suite Parallel Studio entwickelt. Wer dabei als Betatester fungieren möchte, sollte mal hier vorbeischauen.
Antiviren-Software von Avast ist multicore-tauglich
Gerade habe ich auf Zdnet.de eine News entdeckt, die von der sofortigen Verfügbarkeit der kostenlosen Antiviren-Software Avast Free Antivirus 5.0 berichtet. Neben einer komplett neu gestalteten Bedieneroberfläche für mehr Komfort hat sich laut der Avast-Entwickler die Scan-Engine deutlich verbessert, was gemäß interner Benchmarks die Verarbeitungsgeschwindigkeit um bis zu 80 Prozent schneller machen soll. Daneben glänzt die Software mit Echtzeitüberprüfungen des Dateisystems sowie des gesamten E-Mail-, Internet- und Netzwerkdatenverkehrs.
So viel Verbesserung in Sachen Performance lässt sich unter anderem mit Multicore-Optimierungen seitens der Avast-Entwickler bewerkstelligen. Damit erfolgt beispielsweise der Echtzeit-Scan auf einem Prozessorkern, während die GUI von einem zweiten Kern ausgeführt wird, was die Software insgesamt performanter macht.
Was die Leute bei Avast alles dafür getan haben, um ihre Software multicore-tauglich zu machen, werde ich versuchen herauszufinden. Sobald ich die passenden Antworten habe, werden sie natürlich hier veröffentlicht.
PS: Falls ihr Avast Free Antivirus installieren wollt, solltet ihr vorher unbedingt die bereits installierte Antiviren-Software deinstallieren. Ansonsten legt ihr euch möglicherweise den PC selbst lahm.
Intel Ulm und die Linux-Debugger-Tools
Vorige Woche war ich auf Reisen. Die Destination meiner Unternehmung: Die württembergische Außenstelle der Firma Intel, die sich in Ulm befindet. Um es kurz zu machen: Sehr beeindruckend, was ich dort alles gesehen und gelernt habe. Zunächst einmal muss ich aber ein paar Dinge klarstellen, über die ich im Vorfeld berichtet hatte:
1. Der Windows-C++-Compiler für Windows CE wird in Ulm nicht mehr entwickelt und spielt seit dem Erscheinen des Atom-Prozessors auch keine große Rolle mehr. Denn selbst Embedded-Systeme setzen immer öfter auf die Netbook-CPU und ermöglichen damit den Einsatz standardisierter Betriebssysteme wie Linux und Windows mit den zugehörigen Entwicklertools.
2. Die Software-Werkzeuge, um die es bei Intel in Ulm vor allem geht, helfen Programmierern und Entwicklern, ihre Anwendungen fehlerfrei unters Volk zu bringen. Hierfür konzentrieren sich die Ulmer Kollegen auf die Debugger-Tools, die sowohl unter Windows als auch unter Linux zum Einsatz kommen. Interessant an meinem Besuch war unter anderem die Erkenntnis, dass die Parallel Debugger Extension, die sowohl im Parallel Studio als auch in der aktuellen Version des Intel-C++-Compilers stecken, “made in Ulm” sind. Na ja, auf jeden Fall zu einem großen Teil.
3. Das Intel-Büro in Ulm ist entgegen meinen ersten Erwartungen alles andere als beschaulich. Es befindet sich in einem architektonisch höchst interessanten Gebäude, das sogar über einen eigenen Teich verfügt. Auf zwei Stockwerken arbeiten 30 bis 40 Leute vorwiegend an den neuesten Debugger-Tools – auf dass künftige Software möglichst fehlerfrei läuft. Aber auch diverse Entwicklertools für den Atom-Prozessor werden in Ulm konzipiert und entwickelt.
Intel Ulm versorgt den Embedded-Markt mit Tools
Dass Intel seinen Hauptsitz D in Feldkirchen bei München hat, dürften ein paar Leute wissen. Dass es aber darüber hinaus weitere Büros gibt, in denen Spezialanwendungen entwickelt und gepflegt werden, ist wohl nicht wirklich bekannt. Da wäre zum Beispiel Niederlassung in Brühl bei Köln, wo Software-Tools für HPC-Anwendungen entwickelt und programmiert werden. Oder Braunschweig: Dort erschafft man neue Mikroprozessoren, und das Microprocessor Lab Germany ist sogar an der Entwicklung des Projekts Tera Scale Computing beteiligt.
Ach ja, und dann wäre noch Ulm zu nennen. In diesem eher beschaulichen Büro wurde und wird der C++-Compiler für Windows CE entwickelt. Dieses Betriebssystem kommt in Embedded Systemen zum Einsatz. Natürlich geht es in Ulm auch um die passenden Debugger und Simulationsprogramme, mit denen sich hochspezialisierte Anwendungen ausführlich testen lassen.
Und warum erzähle ich das alles? Nun, ich sitze hier gerade im ICE 690 gen Berlin und werde voraussichtlich 9:49 in Ulm aussteigen, um das Intel-Büro und all seine Tools und Projekte ein wenig genauer zu inspizieren. Dabei werde ich bestimmt ein Menge über Embedded-Compiler und -Anwendungen lernen und erfahren und darüber, was den Standort Ulm so einzigartig macht. Abgesehen von Donau, Ulmer Münster und Co. Und klar, dass ich das alles hier publizieren werde. So, stay tuned …








