HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
michael-lehn
gemm-tutorial
Learning & Reference2026–2026
michael-lehn / gemm-tutorial

gemm-tutorial

Discover this repository through its Hacker News conversations.

2Distinct people
2Mentions
0Explicit recommenders
2GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2026-10-30 21:57:48 UTC to 2026-10-31 19:00:45 UTC.

012026-10-30 21:00:00 UTC to 2026-10-30 22:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsOct 30, 21:002026-10-30 22:00:00 UTC to 2026-10-30 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-30 23:00:00 UTC to 2026-10-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 00:00:00 UTC to 2026-10-31 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 01:00:00 UTC to 2026-10-31 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 02:00:00 UTC to 2026-10-31 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 03:00:00 UTC to 2026-10-31 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 04:00:00 UTC to 2026-10-31 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 05:00:00 UTC to 2026-10-31 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 06:00:00 UTC to 2026-10-31 07:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 07:00:00 UTC to 2026-10-31 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 08:00:00 UTC to 2026-10-31 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsOct 31, 08:002026-10-31 09:00:00 UTC to 2026-10-31 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 10:00:00 UTC to 2026-10-31 11:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 11:00:00 UTC to 2026-10-31 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 12:00:00 UTC to 2026-10-31 13:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 13:00:00 UTC to 2026-10-31 14:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 14:00:00 UTC to 2026-10-31 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 15:00:00 UTC to 2026-10-31 16:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 16:00:00 UTC to 2026-10-31 17:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 17:00:00 UTC to 2026-10-31 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 18:00:00 UTC to 2026-10-31 19:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-31 19:00:00 UTC to 2026-10-31 20:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 31, 19:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 30, 21:002026-10-30 21:00:00 UTC2026-10-30 22:00:00 UTC110
Oct 30, 22:002026-10-30 22:00:00 UTC2026-10-30 23:00:00 UTC000
Oct 30, 23:002026-10-30 23:00:00 UTC2026-10-31 00:00:00 UTC000
Oct 31, 00:002026-10-31 00:00:00 UTC2026-10-31 01:00:00 UTC000
Oct 31, 01:002026-10-31 01:00:00 UTC2026-10-31 02:00:00 UTC000
Oct 31, 02:002026-10-31 02:00:00 UTC2026-10-31 03:00:00 UTC000
Oct 31, 03:002026-10-31 03:00:00 UTC2026-10-31 04:00:00 UTC000
Oct 31, 04:002026-10-31 04:00:00 UTC2026-10-31 05:00:00 UTC000
Oct 31, 05:002026-10-31 05:00:00 UTC2026-10-31 06:00:00 UTC000
Oct 31, 06:002026-10-31 06:00:00 UTC2026-10-31 07:00:00 UTC000
Oct 31, 07:002026-10-31 07:00:00 UTC2026-10-31 08:00:00 UTC000
Oct 31, 08:002026-10-31 08:00:00 UTC2026-10-31 09:00:00 UTC000
Oct 31, 09:002026-10-31 09:00:00 UTC2026-10-31 10:00:00 UTC000
Oct 31, 10:002026-10-31 10:00:00 UTC2026-10-31 11:00:00 UTC000
Oct 31, 11:002026-10-31 11:00:00 UTC2026-10-31 12:00:00 UTC000
Oct 31, 12:002026-10-31 12:00:00 UTC2026-10-31 13:00:00 UTC000
Oct 31, 13:002026-10-31 13:00:00 UTC2026-10-31 14:00:00 UTC000
Oct 31, 14:002026-10-31 14:00:00 UTC2026-10-31 15:00:00 UTC000
Oct 31, 15:002026-10-31 15:00:00 UTC2026-10-31 16:00:00 UTC000
Oct 31, 16:002026-10-31 16:00:00 UTC2026-10-31 17:00:00 UTC000
Oct 31, 17:002026-10-31 17:00:00 UTC2026-10-31 18:00:00 UTC000
Oct 31, 18:002026-10-31 18:00:00 UTC2026-10-31 19:00:00 UTC000
Oct 31, 19:002026-10-31 19:00:00 UTC2026-10-31 20:00:00 UTC101

What Hacker News says

2 sources

GEMM Tutorial and UlmBLAS

In 2014 I wrote a tutorial on how to write an efficient matrix multiplication that can achieve near peak performance. This is actually not achieved by some Strassen algorithm variant. It's achieved through a cache friendly algorithm (exploiting the cache hierarchy) and SIMD register instructions. The tutorial showed how to achieve that step by step. Beginning with a naive implementation using three loops. Then using buffers to first cache matrix blocks and then performing the matrix product block wise. That actually means you make copies of blocks and then do computations with the blocks. Sounds stupid but makes sense: Assume you have square N x N blocks then cost of make making a copy is O(N^2) and for the computation it's O(N^3). If the computation with the copied/cached blocks is much faster this actually pays of. Anyway the details ar
Read the rest
e explained in the tutorial. As the university web server has changed many times after 2014 I moved it to GitHub: https://github.com/michael-lehn/gemm-tutorial From the tutorial I created ulmBLAS (ulm makes sense, as I work at Ulm University) which is a complete BLAS implementation. Recently I started with a tutorial for the matrix multiplication with Cuda. Currently there is not much text, I just outlined a possible step by step approach to go from naive to a performant implementation (actually the goal was to be on par with NVIDIA's cuBLAS; but it's more on parish ... but I think still gives an idea). It in the cuda subdirectory of ulmBLAS: https://github.com/michael-lehn/ulmBLAS
4 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.