Startseite

  • Der Motor der Leistung: Branch Prediction in modernen CPU Architekturen
    Die Leistungsfähigkeit eines Prozessors wird von vielen Faktoren beeinflusst. Eine entscheidende Rolle spielt dabei die Branch Prediction. Diese Technik wird von modernen CPUs genutzt, um die Ausführung von Programmcode zu beschleunigen, indem sie voraussagt, welchen Weg ein Programmzweig nehmen wird. Was ist Branch Prediction? Programmcode besteht aus einer Reihe von Anweisungen, die in einer bestimmten Reihenfolge ausgeführt werden. Manchmal gibt es jedoch Verzweigungen, bei denen die Ausführung abhängig von bestimmten Bedingungen unterschiedliche Pfade nehmen kann. Ein Beispiel für eine Verzweigung ist eine bedingte Anweisung wie „if-else“, bei der abhängig von der Erfüllung einer Bedingung entweder der Code im „if“-Zweig oder …
  • WWDC 2023 – Gerüchte zu iOS 17, macOS 14 und RealityOS
    Am 5. Juni 2023 startet Apples alljährliche Entwicklerkonferenz WWDC. Erwartet werden neben neuen Betriebssystem Versionen auch neue Hardware. iOS 17 und iPadOS 17 Was für Neuerungen sind zu erwarten? Welche Geräte bekommen das Update? Wenn das bisherige Update-Schema beibehalten wird, können alle Geräte mit einem A12 Bionic Prozessor voraussichtlich auch iOS 17 erhalten. Die ältesten Geräte die iOS 17 unterstützen wären dann das iPhone XS und XR. Mixed Reality Headset (Reality Pro) Das nächste große „One More Thing“ von Apple könnte eine völlig neue Produktkategorie sein, die mit dem VR/AR-Headset erschlossen wird. Was ist ein VR/ AR Headset? Ein VR/ AR …
  • 5 Anwendungen von LLMs wie ChatGPT in der Softwareentwicklung
    Large Language Models (LLMs) sind vielseitig einsetzbar. Auch in der Softwareentwicklung sorgen diese für eine deutliche Effizienzsteigerung. Hier findest du fünf Anwendungsfälle für LLMs. 1. Schreiben von kleinen Softwareblöcken Oft muss ein Softwareentwickler kurze Codeblöcke schreiben, die zwar nicht besonders komplex sind, aber notwendig, um die Funktionalität der Software zu garantieren. Das manuelle Schreiben dieser Codeblöcke kann jedoch viel Zeit in Anspruch nehmen. Zum Glück gibt es Abhilfe in Form von LLMs wie ChatGPT. Diese Modelle können mithilfe ihrer Fähigkeit, schnell und effizient Code erstellen, der oft sogar von guter Qualität ist und sinnvoll benannte Variablen sowie gründliche Kommentare enthält. …
  • Predication
    In diesem Artikel wird untersucht, warum gewöhnliche if-Anweisungen die Ausführungsdauer erheblich verlangsamen können und wie man dem entgegenwirken kann. Um die Ursprünge dieses Phänomens besser zu verstehen, ist ein grundlegendes Verständnis von Branch Prediction erforderlich. Um die Ausführungsgeschwindigkeit von Code zu verbessern, verwendet die CPU das sogenannte Pipelining, um die Pipeline maximal auszulasten. Dieser Effekt kann jedoch durch sogenannte Pipeline-Flushes beeinträchtigt werden. Um dieses Thema genauer zu verstehen, hier ein kurzes Beispiel: Das folgende Programm zählt die Anzahl der Zahlen, die größer als 50 sind. Da die Zahlen mithilfe einer Zufallsfunktion und Modulo 101 generiert werden, liegen sie immer im …
  • Performance Verbesserungen mit SIMD (Single Instruction multiple data)
    „Single Instruction Multiple Data“ (SIMD) bezieht sich auf eine Art von paralleler Datenverarbeitung, bei der eine CPU oder ein Prozessor mehrere gleiche Operationen auf mehreren Daten gleichzeitig ausführt. Diese Methode wird oft eingesetzt, wenn sehr große und ähnliche Datenmengen effizient verarbeitet werden müssen. Um sich das genauer vorzustellen, können wir uns das Beispiel der Vektor-Addition ansehen. Normalerweise würden wir jedes Element der Vektoren einzeln durchlaufen und addieren, um den Ergebnisvektor zu erhalten. Im Code Beispiel würde die Implementation so aussehen: Deutlich zu erkennen ist, dass der Operator immer derselbe ist (single instruction). Die Daten ändern sich jedoch mit jedem Schleifendurchlauf …