YoVDO

Loop Analysis and Vectorization in Julia - JuliaCon 2020

Offered By: The Julia Programming Language via YouTube

Tags

Julia Courses Automatic Differentiation Courses SIMD Courses

Course Description

Overview

Dive into the intricacies of loop vectorization in Julia with this 25-minute conference talk from JuliaCon 2020. Explore the LoopVectorization library, understanding its representation of loops and cost modeling for efficient vectorization strategies. Learn about intra-core parallelism in modern CPUs, including SIMD and super scalar parallelism. Discover practical issues like contiguous loads and stores, and their relation to data layout decisions. Examine examples of vectorizing loops, including summing vectors and handling non-multiple-of-32 vector lengths. Investigate the @avx macro's capabilities with standard library functions and StructArrays.jl. Delve into techniques for eliminating redundant operations, the use of generated functions, and optimizing convolutions. Gain insights into the internal workings of LoopVectorization.jl and its potential applications in automatic differentiation.

Syllabus

Welcome!.
Loop vectorization and LoopVectorization.jl.
Current limitations of LoopVectorization.jl.
First main part of intra-core parallelism: Single Instruction Multiple Data (SIMD).
Loading and storing vectors.
Second main part of intra-core parallelism: super scalar parallelism.
Example: summing a vector.
Problem: not all vectors have a length that is multiple of 32.
Vectorization of the loop with @avx.
@avx and functions like log from stdlib.
@avx and StructArrays.jl.
Eliminating redundant operations.
LoopVectorization.jl and generated functions.
Redundancy in convolutions.
Internal working of LoopVectorization.jl.


Taught by

The Julia Programming Language

Related Courses

Mojo Programming Language – Full Course for Beginners
freeCodeCamp
Vectorized Query Execution with SIMD - Lecture 8
CMU Database Group via YouTube
Query Vectorization vs. Compilation in Advanced Database Systems - Lecture 10
CMU Database Group via YouTube
Parallel Query Execution - Lecture 13
CMU Database Group via YouTube
One Billion Row Challenge: Optimizing Java for Massive Data Processing
Devoxx via YouTube