<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ML System Optimization on Arshad Siddiqui</title><link>https://arshadhs.github.io/tags/ml-system-optimization/</link><description>Recent content in ML System Optimization on Arshad Siddiqui</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://arshadhs.github.io/tags/ml-system-optimization/index.xml" rel="self" type="application/rss+xml"/><item><title>ML and DL System Performance</title><link>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/010-ml-and-dl-system-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/010-ml-and-dl-system-performance/</guid><description>&lt;h1 id="ml-and-dl-system-performance">
 ML and DL System Performance
 
 &lt;a class="anchor" href="#ml-and-dl-system-performance">#&lt;/a>
 
&lt;/h1>
&lt;p>Machine learning system optimisation begins with measurement. Before changing an algorithm, adding processors, or moving work to a GPU, we need to understand &lt;strong>what is slow&lt;/strong>, &lt;strong>which resource is limiting performance&lt;/strong>, and &lt;strong>how performance changes as the workload grows&lt;/strong>.&lt;/p>
&lt;p>This page covers:&lt;/p>
&lt;ul>
&lt;li>time and space complexity&lt;/li>
&lt;li>throughput and latency&lt;/li>
&lt;li>the relationship between workload, throughput, and latency&lt;/li>
&lt;li>the main measurements used to describe system performance&lt;/li>
&lt;/ul>
&lt;h2 id="learning-objectives">
 Learning Objectives
 
 &lt;a class="anchor" href="#learning-objectives">#&lt;/a>
 
&lt;/h2>
&lt;p>By the end of this page, you should be able to:&lt;/p></description></item><item><title>Parallel and Distributed Algorithms</title><link>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/020-parallel-and-distributed-algorithms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/020-parallel-and-distributed-algorithms/</guid><description>&lt;h1 id="parallel-and-distributed-algorithms">
 Parallel and Distributed Algorithms
 
 &lt;a class="anchor" href="#parallel-and-distributed-algorithms">#&lt;/a>
 
&lt;/h1>
&lt;p>Parallelisation divides computational work into parts that can execute concurrently. The purpose is to reduce completion time or increase throughput, but the gain depends on how much work is genuinely independent and how much overhead is introduced.&lt;/p>
&lt;p>This page covers:&lt;/p>
&lt;ul>
&lt;li>speedup, maximum speedup, and processor efficiency&lt;/li>
&lt;li>Amdahl&amp;rsquo;s Law&lt;/li>
&lt;li>data-level parallelism&lt;/li>
&lt;li>task-level parallelism&lt;/li>
&lt;li>algorithm-specific parallelism&lt;/li>
&lt;li>communication, synchronisation, scheduling, and load-balancing overhead&lt;/li>
&lt;li>parallel merge sort and matrix multiplication&lt;/li>
&lt;/ul>
&lt;h2 id="learning-objectives">
 Learning Objectives
 
 &lt;a class="anchor" href="#learning-objectives">#&lt;/a>
 
&lt;/h2>
&lt;p>By the end of this page, you should be able to:&lt;/p></description></item><item><title>Parallel Programming Models</title><link>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/030-parallel-programming-models/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://arshadhs.github.io/docs/ai/038-ml-system-optimisation/030-parallel-programming-models/</guid><description>&lt;h1 id="parallel-programming-models">
 Parallel Programming Models
 
 &lt;a class="anchor" href="#parallel-programming-models">#&lt;/a>
 
&lt;/h1>
&lt;p>Parallel algorithms need hardware that can execute independent work efficiently. Modern systems therefore combine multiple CPU cores, memory hierarchies, threads, instruction pipelines, GPUs, clusters, and specialised matrix processors.&lt;/p>
&lt;p>This page covers:&lt;/p>
&lt;ul>
&lt;li>multi-core CPU organisation&lt;/li>
&lt;li>cache and memory hierarchy&lt;/li>
&lt;li>processes, threads, scheduling, and synchronisation&lt;/li>
&lt;li>instruction pipelining and clock-cycle time&lt;/li>
&lt;li>SIMD, MIMD, and SIMT execution&lt;/li>
&lt;li>GPGPU architecture and GPU memory behaviour&lt;/li>
&lt;li>CPU-only and GPU-accelerated clusters&lt;/li>
&lt;li>Tensor Processing Units and systolic arrays&lt;/li>
&lt;/ul>
&lt;h2 id="learning-objectives">
 Learning Objectives
 
 &lt;a class="anchor" href="#learning-objectives">#&lt;/a>
 
&lt;/h2>
&lt;p>By the end of this page, you should be able to:&lt;/p></description></item></channel></rss>