Loop Analysis and Vectorization in Julia - JuliaCon 2020
Offered By: The Julia Programming Language via YouTube
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 ComputingStanford 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