Accelerate Image Processing with Pillow-SIMD in Python

Accelerate Image Processing with Pillow-SIMD in Python

The Python Pillow library is quite familiar to everyone, as it is a great helper for image processing. However, it can be a bit slow when dealing with large images. Today, let’s talk about how to speed it up using Pillow-SIMD and make it fly! ## What is SIMD? SIMD, or Single Instruction Multiple Data, … Read more

Pillow-SIMD: A Powerful Image Processing Library

Pillow-SIMD: A Powerful Image Processing Library

Pillow-SIMD: A Powerful Image Processing Library Hello everyone! Today I want to introduce you to an amazing image processing library – Pillow-SIMD. As a Python developer who often deals with images, I can’t get enough of this library. It is the SIMD-accelerated version of Pillow, like installing a “rocket booster” on regular Pillow, making the … Read more

In-Depth Analysis of Pillow-SIMD: The Image Processing Library 99% Engineers Don’t Know

In-Depth Analysis of Pillow-SIMD: The Image Processing Library 99% Engineers Don't Know

In a large e-commerce project, we need to process hundreds of thousands of product images daily for scaling, cropping, and format conversion. When using the regular Pillow library, image processing speed became a serious performance bottleneck. Until we discovered Pillow-SIMD, this “magic tool,” which boosted image processing speed by an astonishing 30 times, significantly reducing … Read more

Optimizing Game Performance with SIMD Parallel Computing

Optimizing Game Performance with SIMD Parallel Computing

Author: Yu Yisai Part One: Introduction Game engines are filled with a large number of calculations, among which the most typical are vector operations, matrix operations, and quaternion operations. They share a common point: in most cases, data is grouped into sets of 4 numbers, with one or more calculations performed between two sets of … Read more

SIMD vs SIMT: Two Paradigms of Parallel Computing

SIMD vs SIMT: Two Paradigms of Parallel Computing

In the field of modern high-performance computing and parallel processing, two concepts frequently arise:SIMD (Single Instruction Multiple Data) and SIMT (Single Instruction Multiple Threads). For those who are encountering these terms for the first time, they may find their meanings and differences confusing. This article will help you understand the basic concepts, application scenarios, and … Read more

In-Depth Analysis of SIMD Parallel Computing Optimization Strategies in LeetCode

In-Depth Analysis of SIMD Parallel Computing Optimization Strategies in LeetCode

# In-Depth Analysis of SIMD Parallel Computing Optimization Strategies in LeetCode Hello everyone! I am Xiao Ou. Today, I will take you to learn about a super cool performance optimization technique – SIMD parallel computing. Sounds impressive, right? Don't worry, I'll explain how this "speed-up artifact" works in the simplest way possible. We will also … Read more

Exploring SIMDJSON: 2.5x Performance Boost Over Fastjson2

Exploring SIMDJSON: 2.5x Performance Boost Over Fastjson2

Hello everyone, I’m Tim. We all know that due to various issues with the Java language, vectorization has always been synonymous with C++ or Rust. Recently, an open-source JSON parsing library called simdjson-java, which uses Java’s vectorization API, has emerged, offering a performance that is 2.5 times faster than the Fastjson2 parsing library! This means … Read more

Doris Development Notes: Optimizing Hot Code in Storage Layer with SIMD Instructions

Doris Development Notes: Optimizing Hot Code in Storage Layer with SIMD Instructions

Recently, I’ve been developing the vectorized computing engine for Doris. During the investigation of CPU hotspots, I discovered CPU hotspot issues in the storage layer. Therefore, I attempted to optimize this part of the CPU hotspot code using SIMD instructions, achieving good performance improvements. This note documents the discovery of the issue, the solution process, … Read more

Exploration of Vectorized SIMD Instructions in PolarDB Distributed Edition

Exploration of Vectorized SIMD Instructions in PolarDB Distributed Edition

1. Background PolarDB Distributed Edition (PolarDB for Xscale, abbreviated as: PolarDB-X) is a cloud-native distributed database with important features such as online transaction and analytical processing (HTAP), separation of computing and storage, and global secondary indexing. In terms of HTAP, PolarDB Distributed Edition has explored and practiced many aspects of vectorization for the AP engine, … Read more

Analyzing SIMD Instructions in ClickHouse

Analyzing SIMD Instructions in ClickHouse

ClickHouse has done very detailed work at the computing layer, maximizing hardware capabilities to enhance query speed. It implements various important technologies such as single-machine multi-core parallelism, distributed computing, vectorized execution with SIMD instructions, and code generation. Multi-Core Parallelism ClickHouse divides data into multiple partitions, each partition is further divided into multiple index granularities, and … Read more