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

Stanford Seminar - MIPS Open, Wave Computing
Stanford University via YouTube
Intrinsic Functions and Vector Processing Extensions for SIMD Parallel Operations in C++
javidx9 via YouTube
Intrinsics - Low-Level Engine Development with Burst - Unite Copenhagen
Unity via YouTube
Aggregating Ticks to Manage Scale in Sea of Thieves - Unreal Fest Europe 2019 - Unreal Engine
Unreal Engine via YouTube
Writing Fast Java Code with the Vector API - JEP Café 18
Java via YouTube