Künstliche Intelligenz
GPT-5 in Visual Studio Code: Das Juli-Release unterstützt das neue Sprachmodell
Microsoft hat das Juli-Update seines freien Sourcecode-Editors Visual Studio Code 1.103 veröffentlicht. In dieser Version kann er bereits in Form einer öffentlichen Preview die Features von OpenAIs frisch erschienenem Sprachmodell GPT-5 nutzen. Zudem können Entwicklerinnen und Entwickler nun im Chat Checkpoints setzen, um zu einem früheren Zustand zurückzukehren.
GPT-5 jetzt als Preview in GitHub Copilot
Als fortschrittlichstes Sprachmodell von OpenAI soll GPT-5 Updates für mehrere Bereiche bringen, die für Developer relevant sind: GPT-5 soll sowohl das Reasoning als auch das Coding und den Chat verbessern.
Der GPT-5-Support läuft derzeit als Public Preview für GitHub Copilot und wird allen zahlenden Copilot-Kundinnen und -Kunden zur Verfügung gestellt – nicht nur in Visual Studio Code, sondern auch auf github.com im GitHub Copilot Chat und in der mobilen Version GitHub Mobile. Um darauf in VS Code zuzugreifen, wählen Entwicklerinnen und Entwickler GPT-5 innerhalb der Chat View im Model Picker aus.
Die öffentliche Preview für OpenAI GPT-5 steht in VS Code bereit.
(Bild: GitHub-Blog)
Admins von Copilot Enterprise und Business müssen den GPT-5-Support zunächst in den Copilot-Einstellungen erlauben. Dann können User innerhalb der Organisation in VS Code das neue Sprachmodell auswählen.
Als eine weitere Neuerung im Chat lassen sich nun Checkpoints nutzen, um zu einem früheren Chat-Status zurückzukehren und Änderungen rückgängig zu machen. Wie Microsoft ausführt, soll das insbesondere beim Bearbeiten mehrerer Dateien innerhalb einer Chat-Session hilfreich sein. Auch das Wiederherstellen zu einem Checkpoint lässt sich dabei rückgängig machen.
Die neue Funktion Checkpoints kann den Chat in VS Code auf einen bestimmten Status zurücksetzen.
(Bild: Microsoft)
Checkpoints sind standardmäßig aktiviert und lassen sich mit der Einstellung chat.checkpoints.enabled
steuern.
(Bild: Golden Sikorka/Shutterstock)
Die Online-Konferenz LLMs im Unternehmen am 29. Oktober zeigt, wie man das passende Modell auswählt, die Infrastruktur aufbaut und die Sicherheit im Griff behält. Außerdem gibt der Thementag von iX und dpunkt.verlag einen Ausblick auf Liquid Foundation Models als nächste Generation von LLMs.
Weitere Updates in diesem VS-Code-Release umfassen eine verbesserte Barrierefreiheit, das mögliche Konfigurieren des Autostart-Verhaltens für MCP-Server und die Überarbeitung des Tool Picker. Alle Details zu den Neuerungen finden sich im Ankündigungsbeitrag von Microsoft.
(mai)
Künstliche Intelligenz
Datenparallele Typen in C++26: SIMD-Algorithmen
Die SIMD-Bibliothek bietet in C++26 portable Typen zur expliziten Angabe von Datenparallelität und zur Strukturierung von Daten für einen effizienteren SIMD-Zugriff.
Rainer Grimm ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. Er schreibt gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne und häufig auf Fachkonferenzen. Auf seinem Blog Modernes C++ beschäftigt er sich intensiv mit seiner Leidenschaft C++.
Die Kurzserie zu datenparallelen Typen hat bisher folgende Themen behandelt:
Mit dem aktuellen Beitrag schließe ich die Serie ab. Diesmal geht es um vier spezielle Algorithmen für SIMD-Vektoren: min
, max
, minmax
und clamp
.
Minimum und Maximum
Den zwei Algorithmen min
und max
ist gemein, dass sie jeweils zwei SIMD-Vektoren annehmen und einen SIMD-Vektor zurückgeben. Dieser enthält die elementweisen Minimum oder Maximum der Eingabevektoren. Der minmax
-Algorithmus nimmt ebenfalls zwei SIMD-Vektoren an und gibt ein Paar von SIMD-Vektoren zurück. Der erste Vektor des Paares enthält die elementweisen Minimum, der zweite die elementweisen Maximum der Eingabevektoren.
Das folgende Beispiel zeigt die drei Algorithmen in Aktion:
// minmax.cpp
#include
#include
#include
namespace stdx = std::experimental;
void println(auto rem, auto const v) {
std::cout << rem << ": ";
for (std::size_t i = 0; i != v.size(); ++i)
std::cout << std::setw(2) << v[i] << ' ';
std::cout << '\n';
}
void printPairs(auto rem, auto const v1) {
std::cout << rem << ": ";
for (std::size_t i = 0; i != v1.first.size(); ++i)
std::cout << '(' << v1.first[i] << ", " << v1.second[i] << ')' << ' ';
std::cout << '\n';
}
int main() {
stdx::fixed_size_simd a{[](int i) {
static constexpr auto c = {10, 9, 8, 7, 6, 5, 4, 3};
return c.begin()[i];
}};
println("a", a);
stdx::fixed_size_simd b{[](int i) {
static constexpr auto c = {3, 4, 5, 6, 7, 8, 9, 10,};
return c.begin()[i];
}};
println("b", b);
std::cout << '\n';
auto minimum = stdx::min(a, b);
println("minimum", minimum);
auto maximum = stdx::max(a, b);
println("maximum", maximum);
/*
auto minmax = stdx::minmax(a, b);
printPairs("minmax", minmax);
*/
}
Als Eingabevektoren verwende ich die SIMD-Vektoren a
und b
. Diese werden auf eine besondere Art initialisiert. Dazu lege ich eine Initialisierungsliste c
in der Lambda-Funktion an, die einen Iterator auf sie zurückgibt.
Der Screenshot zeigt die Ausgabe des Programms mit min und max.
Die Anwendung des Algorithmus minmax
habe ich auskommentiert, weil ich die Zeile stdx::minmax(a, b)
weder mit dem GCC noch mit dem clang -Compiler übersetzen konnte.
Einpassen in Grenzwerte mit clamp
std::datapar::clamp
wendet elementweise die Funktion std::clamp
auf den SIMD-Vektor an. Dabei wird jedes Element in einen minimalen und maximalen Grenzwert eingesperrt.
Das folgende Programm basiert auf einem Beispiel aus cppreference:
// clamp.cpp
#include
#include
#include
#include
#include
namespace stdx = std::experimental;
void println(auto rem, auto const v) {
std::cout << rem << ": ";
for (std::size_t i = 0; i != v.size(); ++i)
std::cout << std::setw(4) << v[i] << ' ';
std::cout << '\n';
}
int main() {
std::cout << "INT8_MIN: " << INT8_MIN << '\n';
std::cout << "INT8_MAX: " << INT8_MAX << '\n';
std::cout << "UINT8_MAX: " << UINT8_MAX << '\n';
std::cout << '\n';
stdx::fixed_size_simd a{[](int i) {
static constexpr auto c = {-129, -128, -1, 0, 42, 127, 128, 255};
return c.begin()[i];
}};
println("a", a);
stdx::fixed_size_simd lo1{INT8_MIN};
stdx::fixed_size_simd hi1{INT8_MAX};
const auto b = stdx::clamp(a, lo1, hi1);
println("b", b);
stdx::fixed_size_simd lo2{0};
stdx::fixed_size_simd hi2{UINT8_MAX};
const auto c = stdx::clamp(a, lo2, hi2);
println("c", c);
}
Der Screenshot zeigt die Ausgabe des Programms mit clamp
Schön ist in der Ausgabe des SIMD-Vektors b zu sehen, wie die Werte des SIMD-Vektors a
in die Grenzwerte INT8_MIN
und INT8_MAX
eingepasst werden. Bei dem SIMD-Vektor c
kommen hingegen die Grenzwerte 0 und UINT8_MAX
zum Einsatz.
Wie geht’s weiter?
Nun ist es Zeit für meinen zweiten Durchlauf durch den neuen C++26-Standard. Dabei werde ich mich in erster Linie auf die Funktionen konzentrieren, die ich im ersten Durchgang nicht im Detail behandelt habe.
Beginnen werde ich mit Contracts.
(rme)
Künstliche Intelligenz
iX-Workshop: Angriffe auf Entra ID abwehren
Microsofts Cloud-basierter Identitäts- und Zugriffsverwaltungsdienst Entra ID ist als zentraler Bestandteil vieler Unternehmensnetzwerke ein beliebtes Ziel für Ransomware und andere Angriffe.
Im zweitägigen Online-Workshop Angriffe auf und Absicherung von Entra ID erfahren Sie, wie Angreifer Fehlkonfigurationen in Microsofts Identitätsverwaltungsdienst und fehlende Härtungsmaßnahmen erkennen und ausnutzen. Darauf aufbauend zeigt Ihnen Thomas Kudlacek, wie Sie Ihre Entra ID-Umgebung inklusive der Azure-Dienste effektiv absichern und gibt Ihnen Empfehlungen. Mit den Unterlagen, die Sie in dieser Schulung erhalten, können Sie im Anschluss selbstständig üben.
September 11.09. – 12.09.2025 |
Online-Workshop, 09:00 – 17:00 Uhr 10 % Frühbucher-Rabatt bis zum 13. Aug. 2025 |
Dezember 03.12. – 04.12.2025 |
Online-Workshop, 09:00 – 17:00 Uhr 10 % Frühbucher-Rabatt bis zum 04. Nov. 2025 |
Der Workshop richtet sich an Mitarbeitende aus den Bereichen Administration, IT-Leitung und IT-Sicherheit. Ihr Trainer Thomas Kudlacek ist Cyber Security Specialist bei der Cyber Security Academy von Oneconsult. Zuvor war er als Penetrationstester für einen internationalen Dienstleister tätig.
(ilk)
Künstliche Intelligenz
Der breitestgestreute Index der Welt: Wie der MSCI ACWI IMI abschneidet
Wer sein Geld mit geringem Aufwand möglichst breit investieren und gleichzeitig nennenswerte Renditen erwirtschaften möchte, landete in der Vergangenheit regelmäßig beim MSCI World. Der Index und die dazugehörigen ETFs galten als guter Kompromiss aus Sicherheit und Ertrag. Doch zuletzt wuchs die Kritik an der US-Lastigkeit des MSCI World – auch aufgrund der Trumpschen Unberechenbarkeit. Wer dem entgehen möchte, stößt auf der Suche nach einer anderen Anlagemöglichkeit mit hoher Wahrscheinlichkeit auf den MSCI ACWI oder MSCI ACWI IMI. Beide decken große Teile der Weltwirtschaft ab und reduzieren damit auf den ersten Blick die Abhängigkeit von den Vereinigten Staaten.
Beim MSCI ACWI (All Country World Index) und MSCI ACWI IMI (All Country World Investable Market Index) handelt es sich um zwei von MSCI herausgegebene Indizes, die im Sommer 2025 Aktiengesellschaften aus 47 Ländern berücksichtigen. Die Zusammensetzung entspricht der des MSCI World, der 23 Industriestaaten abdeckt, zuzüglich des MSCI Emerging Markets mit seinen 24 Schwellenländern. Der wesentliche Unterschied: Während der ACWI 2524 Unternehmen enthält, sind es beim ACWI IMI mit 8274 deutlich mehr. Letztgenannter gilt deshalb als der weltweit am breitesten gestreute Index, der zudem 99 Prozent der Aktien in den 47 Ländern abdeckt. Zum Vergleich: Der MSCI World enthält 1322 unterschiedliche Positionen.
- Alle vom MSCI World berücksichtigten Unternehmen sind auch Bestandteile des MSCI ACWI und ACWI IMI, etwa Apple, Microsoft und SAP.
- Wie bei jedem Index gibt es auch beim MSCI ACWI und ACWI IMI klare Regeln für die Zusammensetzung. Veränderungen bezüglich der Gewichtung von Branchen und Staaten oder bei den enthaltenen Unternehmen sind dennoch möglich und üblich, wenn sich die Börsenwerte nach oben oder unten entwickeln.
- Die Auswahl an ETFs, die den MSCI ACWI oder ACWI IMI abbilden, ist vergleichsweise gering. Dennoch gibt es größere Unterschiede, die Sie bei der Auswahl berücksichtigen sollten.
Im Folgenden erklären wir die wesentlichen Unterschiede zwischen den beiden ACWI-Indizes und zeigen die Entwicklung seit 2015. Dabei vergleichen wir den MSCI ACWI und MSCI ACWI IMI mit drei anderen Indizes: dem MSCI World, MSCI Europe und S&P 500. Letzterer bildet die Entwicklung der 500 wertvollsten, börsennotierten US-Unternehmen ab und steht damit stellvertretend für die Wirtschaft der Vereinigten Staaten. Der MSCI Europe konzentriert sich auf die wichtigsten Unternehmen Europas und ist damit eine mögliche Wahl für alle Anleger, die nicht in die USA investieren möchten. Am Ende steht die Frage, ob sich die breite Streuung der beiden ACWI-Produkte wirklich lohnt. Wichtig für Sie: Alle Bewertungen basieren auf Wertentwicklungen in der Vergangenheit. Diese stellen keine Garantie für künftige Gewinne oder Verluste dar.
Das war die Leseprobe unseres heise-Plus-Artikels „Der breitestgestreute Index der Welt: Wie der MSCI ACWI IMI abschneidet“.
Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.
-
Datenschutz & Sicherheitvor 2 Monaten
Geschichten aus dem DSC-Beirat: Einreisebeschränkungen und Zugriffsschranken
-
Apps & Mobile Entwicklungvor 2 Monaten
Metal Gear Solid Δ: Snake Eater: Ein Multiplayer-Modus für Fans von Versteckenspielen
-
Online Marketing & SEOvor 2 Monaten
TikTok trackt CO₂ von Ads – und Mitarbeitende intern mit Ratings
-
Digital Business & Startupsvor 1 Monat
10.000 Euro Tickets? Kann man machen – aber nur mit diesem Trick
-
UX/UI & Webdesignvor 2 Monaten
Philip Bürli › PAGE online
-
Digital Business & Startupsvor 1 Monat
80 % günstiger dank KI – Startup vereinfacht Klinikstudien: Pitchdeck hier
-
Social Mediavor 2 Monaten
Aktuelle Trends, Studien und Statistiken
-
Apps & Mobile Entwicklungvor 2 Monaten
Patentstreit: Western Digital muss 1 US-Dollar Schadenersatz zahlen