Главная
Study mode:
on
1
Welcome!
2
Loop vectorization and LoopVectorization.jl
3
Current limitations of LoopVectorization.jl
4
First main part of intra-core parallelism: Single Instruction Multiple Data (SIMD)
5
Loading and storing vectors
6
Second main part of intra-core parallelism: super scalar parallelism
7
Example: summing a vector
8
Problem: not all vectors have a length that is multiple of 32
9
Vectorization of the loop with @avx
10
@avx and functions like log from stdlib
11
@avx and StructArrays.jl
12
Eliminating redundant operations
13
LoopVectorization.jl and generated functions
14
Redundancy in convolutions
15
Internal working of LoopVectorization.jl
Description:
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.

Loop Analysis and Vectorization in Julia - JuliaCon 2020

The Julia Programming Language
Add to list
0:00 / 0:00