HTAP внутри OLTP: как мы строили векторизованный движок с самого начала

Как встроить векторизованный движок в OLTP-ядро с нуля — без отдельного аналитического слоя. Разбираем PhysicalType, SelectionVector, RowToColumnBridge, SIMD на листовых страницах B-Tree и Hash Join. Бенчмарк на 2,25 млн строк: от 1.22× на простых агрегатах до 2.67× на GROUP BY.

https://habr.com/ru/articles/1032894/

#htap #векторизация #база_данных #simd #btree #Hash_Join #rust #oltp

HTAP внутри OLTP: как мы строили векторизованный движок с самого начала

Все предыдущие статьи этого цикла крутились вокруг одной темы: как сделать OLTP предсказуемым. Мы разбирали p99 latency и почему оно уезжает при смешанной нагрузке. Писали про API-контракты между...

Хабр

Two more results. This time without using std::simd. One uses a plain loop over C[i, j] += A[i, k] * B[k, j] (in the inner kernel—it is still blocked over all levels of the cache hierarchy).

This is ~10–30x slower.

1/2

#stdsimd #cpp26 #simd

Making cross-platform SIMD code pleasant

bx 라이브러리의 최신 SIMD 지원은 플랫폼 간 차이와 복잡한 타입 시스템 문제를 해결하여, SIMD 코드를 더 직관적이고 유지보수하기 쉽게 만들었다. typeless SIMD 접근법을 채택해 정수와 부동소수점 연산 간 타입 변환의 번거로움을 제거하고, simd32_t를 도입해 기존 C/C++ 코드를 SIMD화하는 진입 장벽을 낮췄다. 또한 ABI 차이를 고려한 설계로 다양한 플랫폼에서 성능 저하 없이 작동하며, SSA 스타일 코딩과 명확한 네이밍 규칙으로 디버깅과 최적화가 용이하다. 이로써 SIMD 코딩의 복잡성을 크게 줄이고, 동일한 코드가 여러 SIMD 레지스터 폭에서 효율적으로 실행될 수 있다.

https://bkaradzic.github.io/posts/typeless-simd/

#simd #crossplatform #bxlibrary #typelesssimd #abi

Making cross-platform SIMD code pleasant | Branimir Karadžić's Home Page

Branimir Karadžić's Home Page

I've been looking into matrix multiplication using std::simd and std::mdspan/submdspan (all single-threaded).
I got to 86% of peak FLOP. x86_64 AVX2 has 32/16 FLOP/cycle peak (2 FMAs per cycle).
I suspect better performance needs a more cache-friendly layout mapping. This is using layout_right.

#stdsimd #simd #mdspan #cpp26 #cpp

Ted (@tudoroancea)

배칭을 더 늘리고 4개의 SIMD 레인과 12개 스레드(M4 Max의 12개 퍼포먼스 코어)를 활용한 최적화로 초당 7천만~8천만 토큰 처리 속도를 달성할 수 있다고 언급했다. 추론 성능 개선과 하드웨어 최적화에 관한 기술적 내용이다.

https://x.com/tudoroancea/status/2050937732034187760

#batching #simd #performance #tokens #optimization

Ted (@tudoroancea) on X

@alexocheema with more batching over 4 simd lanes and 12 threads (on 12 perf cores on m4 max) and some other tricks we can get up to 70-80M tok/sec

X (formerly Twitter)
🌗 你可以超越二分搜尋
➤ 從演算法到硬體指令:重新定義陣列搜尋效率
https://lemire.me/blog/2026/04/27/you-can-beat-the-binary-search/
軟體效能專家 Daniel Lemire 探討了在處理排序陣列時,如何超越傳統二分搜尋法。他指出,雖然二分搜尋在大型資料集中表現優異,但面對如 Roaring Bitmap 這類小型陣列(1 至 4096 個 16 位元整數)時,傳統做法存在優化空間。Lemire 提出利用現代處理器的 SIMD(單指令多數據流)技術,同時比對多個數值,從而突破傳統逐一比對的瓶頸,實現更高效的搜尋。
+ 這篇文章點出了很多工程師的盲點,總是預設二分搜尋就是最快的,卻忽略了針對硬體層級進行 SIMD 優化的可能性。
+ 對於 Roaring Bitmap 這種特定的資料結構來說,利用 SIMD 來處理 16 位元整數確實比傳統二分搜尋更具效能優勢。
#軟體效能優化 #演算法 #SIMD
You can beat the binary search

We sometimes have to look for a value in a sorted array. The simplest algorithm consists in just going through the values one by one, until we encounter the value, or exhaust the array. We sometimes call this algorithm a linear search. In C++, you can get the desired effect with the std::find function. For … Continue reading You can beat the binary search

Daniel Lemire's blog

Inspired by @jonhoo's `brrr` I wrote #SIMD splitting iterator which seem to work. Now, I'm not sure if I should be proud of myself, or sad I reinvented the wheel...

For those interested: it has limitation to byte slices, but it's correct for #unaligned data (subject to future optimisations); uses nightly.

Now it needs #benchmarks

#rust #iterator #reinvented

The fastest way to match characters on ARM processors?, https://lemire.me/blog/2026/04/19/the-fastest-way-to-match-characters-on-arm-processors/.

In this article, Lemir talks about two SIMD ARM SVE/SVE2 instructions: `match` and `nmatch`, which fit nicely in the _vectorized classification_ step of `simdjson`. These instructions improve the performance of `simdjson` from 11.4Gb/s to 14.4Gb/s.

#performance #simd #arm #json #parsing

The fastest way to match characters on ARM processors?

Consider the following problem. Given a string, you must match all of the ASCII white-space characters (\t, \n, \r, and the space) and some characters important in JSON (:, ,, [, ], {, }). JSON is a text-based data format used for web services. A toy JSON document looks as follows. { "name": "Alice", "age": … Continue reading The fastest way to match characters on ARM processors?

Daniel Lemire's blog

Серверные FHE-ускорители для шифрования

Защита конфиденциальных данных — одна из главных проблем при работе с LLM. Главное, чтобы облачный «вычислительный движок» выполнял работу только над зашифрованными данными, не имея доступ к открытой информации. В качестве решения проблемы предлагается полностью гомоморфное шифрование запросов (FHE). Оно позволяет организовать полностью зашифрованный канал между двумя пользователями (E2E) с сервером посредине между ними. Проблема только в том, что зашифрованные вычисления FHE в десятки тысяч раз медленнее обычных, а размер шифротекста FHE в десятки раз больше оригинала. На Международной конференции по твердотельным схемам IEEE (ISSCC) в Сан-Франциско компания Intel представила прототип чипа Heracles, ускоряющий вычисления FHE до 5000 раз по сравнению с лучшими серверными CPU. И это не единственный FHE-ускоритель в разработке.

https://habr.com/ru/companies/globalsign/articles/1022576/

#FHE #гомоморфное_шифрование #Heracles #FinFET #LLM #шифрование #автоморфизм #Intel #SIMD

Серверные FHE-ускорители для шифрования

Прототип микросхемы Intel Heracles Защита конфиденциальных данных — одна из главных проблем при работе с LLM. По этой причине не рекомендуется работать с облачными сервисами и передавать туда...

Хабр

Modern #CPUs support #SIMD, but many #Java apps don’t fully use it. @BalaRawool shows how the #Vector #API enables explicit SIMD beyond limited auto-vectorization on the #JVM, with portable fallback.

See how to write loops that actually vectorize:: https://javapro.io/2026/04/09/java-vector-api-faster-vector-computations-for-the-jvm/