Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Matthias Kretz | Vir

@mkretz@floss.social
mastodon 4.7.3
  • Open on floss.social

🧔🏻‍♂️👩🏽 👦🏻👧🏻👧🏻, C++ committee numerics chair, std::simd / SIMD specialist, CS PhD, Dipl.-Phys, nuclear physics, former KDE core developer, FLOSS user & supporter, anti fascist, 🏋️‍♂️, 🏊‍♂️🚴‍♂️🏃‍♂️

Profile picture: me on my Aeroad racing in a triathlon

Header picture: @mkretz@floss.social

#SIMD #stdsimd #WG21 #Cpp #GCC #KDE #roadcycling #running #triathlon #Darmstadt #DSW12triathlon

89 Followers
68 Following
17 Posts
Joined December 01, 2022
GitHub:
https://github.com/mattkretz
ORCID:
https://orcid.org/0000-0002-0867-243X
Blog:
https://mattkretz.github.io/
Garmin Connect:
https://connect.garmin.com/modern/profile/4827aa7d-deae-410e-82f6-98b73fe8e659
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 6mo ago

The first part of std::simd just landed in #GCC 16: https://forge.sourceware.org/gcc/gcc-mirror/commit/8be0893fd98c9a89bbcd81e0ff8ebae60841d062
Expect it on Compiler Explorer in — I guess — 12 hours.

#simd #wg21 #cpp #cpp26 #cplusplus

floss.social
11
0
7
1
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 4mo ago

Quote today at a panel on AI at #CHEP2026 : "What shall we do? Burn all the data centers?" *cheers erupt*

floss.social
4
0
1
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 2mo ago

Clang is trolling me: "error: call to consteval function […] is not a constant expression"

1
0
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 4mo ago

New blog post "Introduction to std::simd in C++26 (Part 1)": https://mattkretz.github.io/2026/05/21/intro-to-std-simd-part-1.html

#cpp #cpp26 #cplusplus #SIMD #stdsimd

mattkretz.github.io
4
0
4
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 3mo ago

It's been more than 10 years that I've been at CERN. A lot has changed. But I also recognize a lot, still.

2
0
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

RE: @danielskatz@fediscience.org

🎉 Seems like my #stdsimd work will finally be easier to recognize as research output.

fediscience.org

Daniel S. Katz: "Wilhelm Hasselbring, Rob van Nieuwpoort, and I ju…" - FediScience.org

4
0
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

I've been looking into matrix multiplication using std::simd and std::mdspan/submdspan (all single-threaded).
I got to 86% of peak FLOP. x86_64 AVX2 has 32/16 FLOP/cycle peak (2 FMAs per cycle).
I suspect better performance needs a more cache-friendly layout mapping. This is using layout_right.

#stdsimd #simd #mdspan #cpp26 #cpp

floss.social

FLOSS.social

3
1
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 4mo ago

#include
is cheaper than
#include

(I know how to improve on that. But, for GCC 17, I will need to add more for full C++26 conformance which will make it slower as well.)

floss.social
2
0
1
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

The #GCC16 branch has been created. A #GCC 16.1 release is imminent. I already adjusted my https://github.com/mattkretz/cplusplus-ci GCC CI images accordingly. If it builds, you can then get gcc-17 images, too.

floss.social
2
0
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

I'm a bit sad today. Yesterday I pushed https://forge.sourceware.org/gcc/gcc-mirror/commit/804bde962de4819138951aed24b2c8ba768d7344, which makes a simple `x + 1` ill-formed: https://compiler-explorer.com/z/4rYx87fcW. Now, in generic code, you write `+ std::cw<1>` instead. If you know the value-type (`float` in this case), just use the appropriate literal (if it exists): `x + 1.f`.

#stdsimd #cpp26

forge.sourceware.org
2
4
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 6mo ago

On my way back from #WG21 in Croydon/London. #cpp26 is done. Notable change that I got through: You don't have to wonder anymore what difference there is between `constant_arg` and `constant_wrapper`. Only the latter remains. And `constant_wrapper` now works as a function-wrapper, too (passing a callable as constant expression via function argument).
And—somewhat sad—but `simd::vec(...) * 2` won't compile anymore. I'll have to update GCC16 accordingly.

floss.social

FLOSS.social

2
1
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

I wrote a blog post "My vision for an interdisciplinary RSE institute: how to actually help scientists": https://mattkretz.github.io/2026/04/28/vision-rse-institute.html after learning about @futursi@mas.to

I'm happy to learn what others think about the topic!

#RSE

mattkretz.github.io
1
0
3
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 6mo ago

std::simd "Hello World" on Compiler Explorer:
https://compiler-explorer.com/z/nTK4xc96f

#cpp26 #cpp #cplusplus

compiler-explorer.com
1
0
1
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 7mo ago
Replying to
@Chris2000SP @Azarilh @gonun13 Social interaction on the internet is not the problem. Big tech using their (quasi) monopoly to influence user behavior for "shareholder value" is the problem. E.g., there are some good videos on YT; but I hate to go there because it tries to capture as much of my time as possible. Same for any other commercial platform. Most adults can't deal with this properly. Kids on *social* media, fine. Kids on "commercial influencer", "the user is the product" platforms, NO.
1
2
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago

@mhoemmen@c.im mdspan feature request 😉:
Allow mdspan::operator[] with one argument less than rank.
Mandates/Constraints: The resulting range is contiguous in memory.
Returns: A span (of static extent, if possible).

Then I can use std::simd CTAD from range:
simd::basic_vec(B[k], simd::flag_aligned);

instead of:
simd::unchecked_load>(&B[k, 0], &B[k, N-1], simd::flag_aligned);

The former is not only simpler but also safer.

#WG21 #cpp29

floss.social

FLOSS.social

0
1
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago
Replying to

@JSAMcFarlane@mastodon.ie Oh wow, I was not aware of your P0827! I agree on the usefulness of having a UDL for std::cw for even terser syntax. However, the obvious suffix cw is going to be a hard sell because of hex literals. (It just needs an additional w literal and a smart parser that drops the final c 🙈)

0
2
0
0
Open post
Matthias Kretz | Vir @mkretz@floss.social
· 5mo ago
Replying to
@JSAMcFarlane@mastodon.ie I didn't dare!
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 18:49:51 UTC