<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p" -->

---
title: .NET Developer, Personal Blog | daily.dev
description: A deep technical walkthrough implements the classic anagram-checking algorithm using SVE (Scalable Vector Extension) gather and scatter intrinsics in .NET 10...
canonical: https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: .NET Developer, Personal Blog | daily.dev
og:description: A deep technical walkthrough implements the classic anagram-checking algorithm using SVE (Scalable Vector Extension) gather and scatter intrinsics in .NET 10...
og:url: https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p
og:image: https://api.daily.dev/og/posts/oGcnCVo3P.png
og:image:alt: .NET Developer, Personal Blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# .NET Developer, Personal Blog

**[Laszlo Deak](https://daily.dev/sources/ladeak)** · 8 min read · 0 upvotes · 0 comments

## Summary

A deep technical walkthrough implements the classic anagram-checking algorithm using SVE (Scalable Vector Extension) gather and scatter intrinsics in .NET 10 on Azure Cobalt ARM64 cloud machines. The post explains how gather/scatter instructions allow non-contiguous memory access for vectorized algorithms, details a conflict-resolution strategy using an inflated backing array to avoid scatter write collisions, and walks through the full unsafe C# implementation. Benchmark results using BenchmarkDotNet show roughly a 1.5x speedup over the scalar approach (360ns vs 433.6ns), falling short of the theoretical 4x limit due to vector-load overhead.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <http://blog.ladeak.net/posts/simd-anagram-sve>

## Questions this post answers

### How much faster is a SIMD-based anagram check using SVE gather and scatter compared to a regular array-based approach in .NET 10?

The SVE-based approach using gather and scatter intrinsics is about 1.5x faster than the regular scalar approach, measured at 360.0 ns versus 433.6 ns on BenchmarkDotNet with a 280-character input on an Azure Cobalt 100 ARM64 machine running .NET 10.0.0 RC1. The theoretical maximum speedup is 4x since four integers fit per vector, but overhead from loading data into vector registers reduces the real-world gain.

_Developers benchmarking SIMD gains on .NET can compare real-world results like this one on daily.dev._

### How do you resolve write conflicts when using SVE Scatter instructions in .NET for duplicate indexes within the same vector?

Since SVE lacks an explicit conflict-detection instruction (unlike AVX-512), conflicts from duplicate indexes in a vector are resolved by inflating the backing array by a factor equal to the vector lane count (4x), giving each lane its own dedicated section of the array (e.g., indexes 0-25, 26-51, 52-77, 78-103), then merging the per-lane sums afterward with a simple addition pass.

_Engineers working around SVE's lack of conflict detection can track techniques like this on daily.dev._

### Does .NET 10 support AVX-512 gather and scatter intrinsics for SIMD programming?

No, as of .NET 10 the gather and scatter instructions for the AVX family are not yet implemented, even though the API surface has already been approved. However, .NET does implement gather and scatter intrinsics for ARM's Scalable Vector Extension (SVE), which is why SVE on Azure Cobalt machines was used instead of AVX-512 for testing these instructions.

_Developers tracking which SIMD intrinsics .NET actually implements can follow updates like this on daily.dev._

## Similar posts on daily.dev

- [AVX-512: First Impressions on Performance and Programmability](https://daily.dev/posts/avx-512-first-impressions-on-performance-and-programmability-zvccn3onc) · Hacker News · 1 upvotes · 0 comments
- [Build AI Search in .NET using Postgres and pgvector](https://daily.dev/posts/build-ai-search-in-net-using-postgres-and-pgvector-bcwbj2v0i) · Waseem .NET Newsletter · 0 upvotes · 0 comments
- [Let's see Paul Allen's SIMD CSV parser](https://daily.dev/posts/let-s-see-paul-allen-s-simd-csv-parser-xr1qamezs) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#.net](https://daily.dev/tags/.net), [#c#](https://daily.dev/tags/c#)

[View this post on daily.dev](https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":".NET Developer, Personal Blog","url":"https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p"},"datePublished":"2026-10-04T13:06:00.471Z","dateModified":"2026-10-04T13:13:31.847Z","description":"A deep technical walkthrough implements the classic anagram-checking algorithm using SVE (Scalable Vector Extension) gather and scatter intrinsics in .NET 10...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9b0ec3a95676d7dd7e16d628432bd93a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9b0ec3a95676d7dd7e16d628432bd93a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Laszlo Deak","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Laszlo Deak","logo":"https://media.daily.dev/image/upload/s--Uolv4Tlk--/f_auto,q_auto/v1791119054/logos/ladeak?_a=BAMAMicg0","url":"https://daily.dev/sources/ladeak"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,.net,c#","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Laszlo Deak","item":"https://daily.dev/sources/ladeak"},{"@type":"ListItem","position":3,"name":".NET Developer, Personal Blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/net-developer-personal-blog-ogcncvo3p#faq","mainEntity":[{"@type":"Question","name":"How much faster is a SIMD-based anagram check using SVE gather and scatter compared to a regular array-based approach in .NET 10?","acceptedAnswer":{"@type":"Answer","text":"The SVE-based approach using gather and scatter intrinsics is about 1.5x faster than the regular scalar approach, measured at 360.0 ns versus 433.6 ns on BenchmarkDotNet with a 280-character input on an Azure Cobalt 100 ARM64 machine running .NET 10.0.0 RC1. The theoretical maximum speedup is 4x since four integers fit per vector, but overhead from loading data into vector registers reduces the real-world gain. Developers benchmarking SIMD gains on .NET can compare real-world results like this one on daily.dev."}},{"@type":"Question","name":"How do you resolve write conflicts when using SVE Scatter instructions in .NET for duplicate indexes within the same vector?","acceptedAnswer":{"@type":"Answer","text":"Since SVE lacks an explicit conflict-detection instruction (unlike AVX-512), conflicts from duplicate indexes in a vector are resolved by inflating the backing array by a factor equal to the vector lane count (4x), giving each lane its own dedicated section of the array (e.g., indexes 0-25, 26-51, 52-77, 78-103), then merging the per-lane sums afterward with a simple addition pass. Engineers working around SVE's lack of conflict detection can track techniques like this on daily.dev."}},{"@type":"Question","name":"Does .NET 10 support AVX-512 gather and scatter intrinsics for SIMD programming?","acceptedAnswer":{"@type":"Answer","text":"No, as of .NET 10 the gather and scatter instructions for the AVX family are not yet implemented, even though the API surface has already been approved. However, .NET does implement gather and scatter intrinsics for ARM's Scalable Vector Extension (SVE), which is why SVE on Azure Cobalt machines was used instead of AVX-512 for testing these instructions. Developers tracking which SIMD intrinsics .NET actually implements can follow updates like this on daily.dev."}}]}
```

