<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Matrix-Multiplication on Andrii's Notes</title><link>https://trolmark.github.io/tags/matrix-multiplication/</link><description>Recent content in Matrix-Multiplication on Andrii's Notes</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 20 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://trolmark.github.io/tags/matrix-multiplication/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Fast CPU correlation kernel</title><link>https://trolmark.github.io/posts/blog_gemm_syrk/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://trolmark.github.io/posts/blog_gemm_syrk/</guid><description>&lt;h2 id="the-task-pearson-correlation"&gt;
 The task: Pearson correlation
 &lt;a class="heading-link" href="#the-task-pearson-correlation"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This is the story of a task I solved during a performance-programming course from Aalto University&amp;rsquo;s
&lt;a href="https://ppc.cs.aalto.fi/" class="external-link" target="_blank" rel="noopener"&gt;Programming Parallel Computers&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;given an &lt;code&gt;ny × nx&lt;/code&gt; matrix, compute the lower triangle of its &lt;code&gt;ny × ny&lt;/code&gt;
Pearson correlation matrix as fast as possible on a CPU. &lt;strong&gt;Pearson correlation&lt;/strong&gt;
measures how similarly two rows vary after removing their means. A value near
&lt;code&gt;1&lt;/code&gt; means they move together, &lt;code&gt;-1&lt;/code&gt; means they move in opposite directions,
and &lt;code&gt;0&lt;/code&gt; means no linear correlation.&lt;/p&gt;</description></item></channel></rss>