# Packages to write a blog post on “Optimizing an X matmul kernel” in Julia

**URL:** https://discourse.julialang.org/t/packages-to-write-a-blog-post-on-optimizing-an-x-matmul-kernel-in-julia/123095
**Category:** New to Julia
**Created:** [November 26, 2024, 12:05pm UTC](https://discourse.julialang.org/t/packages-to-write-a-blog-post-on-optimizing-an-x-matmul-kernel-in-julia/123095 "2024-11-26T12:05:20Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![xiaoxi](https://avatars.discourse-cdn.com/v4/letter/x/a9adbd/32.png) [@xiaoxi](https://discourse.julialang.org/u/xiaoxi)
#### Post date: [November 26, 2024, 12:05pm UTC](https://discourse.julialang.org/t/packages-to-write-a-blog-post-on-optimizing-an-x-matmul-kernel-in-julia/123095/1 "2024-11-26T12:05:20Z")

</div>

If I were to write a post similar to “Optimizing an X matmul kernel” like

> **[Optimizing a Rust GPU matmul kernel | Rust GPU](https://rust-gpu.github.io/blog/optimizing-matmul/)**
>
> I read the excellent post \[Optimizing a WebGPU Matmul Kernel for 1TFLOP+

> **[Optimizing a WebGPU Matmul Kernel for 1TFLOP+ Performance](https://www.nuss-and-bolts.com/p/optimizing-a-webgpu-matmul-kernel)**
>
> Building Surfgrad, a high-performant, WebGPU-powered autograd library

but in Julia, how should I start? Should I start by learning how to use KernelAbstractions.jl?

P.S: I understand that a blog post like this, hopefully published on the official Julia-lang blog, would be a great opportunity to promote Julia, so I wouldn’t mind if someone with more experience wrote it before me. I’m sure I would learn a lot from it.

---

<div class="post-metadata">

### Author: ![eldee](https://avatars.discourse-cdn.com/v4/letter/e/b5a626/32.png) [@eldee](https://discourse.julialang.org/u/eldee)
#### Post date: [November 30, 2024, 10:22am UTC](https://discourse.julialang.org/t/packages-to-write-a-blog-post-on-optimizing-an-x-matmul-kernel-in-julia/123095/2 "2024-11-30T10:22:12Z")

</div>

If you want to be GPU-vender agnostic, then yes, KernelAbstractions.jl or AcceleratedKernels.jl are probably the most relevant options.  
I see there are also WebGPU bindings [JuliaWGPU · GitHub](https://github.com/JuliaWGPU), [GitHub - cshenton/WebGPU.jl: Julia bindings and native wrapper for the gfx webgpu implementation](https://github.com/cshenton/WebGPU.jl), though they don’t have any documentation.
