Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Loop Analysis and Vectorization in Julia - JuliaCon 2020

The Julia Programming Language via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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

Reviews

Start your review of Loop Analysis and Vectorization in Julia - JuliaCon 2020

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.