ProjectPhysX, to GraphicsProgramming

v2.17 is out! Some huge /​ hardware has been announced at , so I've made my code ready. Until now I've been using 32-bit indexing, which overflows for >2³² grid cells in a domain, equivalent to 225 GB VRAM. Now my code will at runtime automatically compile with 64-bit indexing when more cells are used. 🖖🧐
Also, I've added a new raytracing-based field visualization. Thank you @python for the idea! 💡
Release notes 👉 https://github.com/ProjectPhysX/FluidX3D/releases/tag/v2.17

karolherbst, to random
@karolherbst@chaos.social avatar

@bashbaug Used the intercept layers again today and I was wondering if injecting captured buffers/images is something which is either supported (and I haven't found how to do it yet) or something planned.

Like when I'm comparing between vendors with rusticl, it would be helpful if I could just replace image/buffer outputs with the content from a different capturing to quickly verify if the first difference is actually causing the bug I'm seeing or if it's something else.

bashbaug,
@bashbaug@mastodon.gamedev.place avatar

If anyone else encounters a similar problem in the future, buffer (and image!) injection is now implemented in the OpenCL Intercept Layer 🎉.

You can take a buffer or image from one device or driver, inject it as a kernel input for a different device or driver, and see how it affects the results.

https://github.com/intel/opencl-intercept-layer/blob/main/docs/injecting_buffers_images.md

#OpenCL

toxi, to opensource
@toxi@mastodon.thi.ng avatar

A week ago was the 1st anniversary of this solo instance & more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...

Hi, I'm Karsten 👋 — indy software engineer, researcher, #OpenSource author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects & roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").

Much of my own practice & philosophy is about #BottomUpDesign, interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow & tool/system design). Been adopting a round-robin approach to cross-pollinate my work & learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats & protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative & evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...

Since 2018 my main endeavor has been https://thi.ng/umbrella, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on #TypeScript, #C, #Zig, #WebAssembly, #Clojure, #ClojureScript, #GLSL, #OpenCL, #Forth, #Houdini/#VEX. Earlier on, mainly Java (~15 years, since 1996).

Formative years in the deep end of the #Atari 8bit demoscene (Chip Special Software) & game dev (eg. The Brundles, 1993), B&W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).

Worked on dozens of interactive installations/exhibitions, public spaces & mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (>250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure & asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear & apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.

athas, to random
@athas@freeradical.zone avatar

Is there a way to query the GPU L2 cache size (if any) in #OpenCL? Both HIP and CUDA provide this, so the hardware/driver facility exists.

athas, to random
@athas@freeradical.zone avatar

#OpenCL has a compiler flag -cl-fp32-correctly-rounded-divide-sqrt. If you don't pass this, then divisions and square roots are incorrectly rounded. Shouldn't this be the other way around? How many other flags to I need to pass in order for arithmetic to be correct?

karolherbst, to random
@karolherbst@chaos.social avatar

Also.. I should finish #OpenCL support for the raspberry pi 4 and 5 GPUs 🙃

it's almost complete, just needs some last issues figured out (and me rebasing it as I've landed some needed bits) https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25362

ProjectPhysX, to random

I found an interesting optimization for the marching-cubes algorithm today: Since vertex interpolation happens on axis-aligned edges of the unit cube, it's sufficient to interpolate in 1D instead of 3D. The faster interpolation makes the conditions for which edge to interpolate unnecessary, allowing to get rid of the edge table. That brings the implementation down to 73 lines, including the triangle table. 🖖🤠
https://github.com/ProjectPhysX/FluidX3D/commit/649fd40fa6270fbd0823a53b2a55f4194fc9510b#diff-464b1d19d4b616b9609031b48429081b2c215328d9f98bc5cbeac6b2b84fdbf3R456

ProjectPhysX,

@nickserv that's a bug in 's runtime: fused-multiply-add (fma) is somehow emulated with terrible performance. This is very similar to what @niconiconi found on Nvidia CMP 170HX, where fma was disabled in the driver.
I've just fixed this in , by macro-replacing fma with a*b+c. Performance went up by 8-13x on my Samsung S9+ (ARM Mali-G72 MP18) with this workaround.
https://github.com/ProjectPhysX/FluidX3D/commit/9ce2caecfc85e4fda50fed3350304b75b223b06b
cc @chipsandcheese

bashbaug, to random
@bashbaug@mastodon.gamedev.place avatar

We released an updated version of the OpenCL Intercept Layer yesterday, just in time for #IWOCL!

This release supports the latest OpenCL extensions, includes a bunch of performance improvements, and adds a bunch of new features, including the ability to capture an OpenCL kernel and replay it outside of an application for easier debugging.

Get the latest version here: https://github.com/intel/opencl-intercept-layer

#OpenCL

bashbaug, to random
@bashbaug@mastodon.gamedev.place avatar

I couldn't make it to Chicago and IWOCL this year, so I did my best to bring Chicago to me. #IWOCL #OpenCL #SYCL

karolherbst, to linux
@karolherbst@chaos.social avatar

So, I'll be having my talk about Rusticl, Compute in the linux desktop and other related topics at IWOCL next week.

Any specifics topics you want me to cover?

#iwocl #opencl #rusticl #linux

jay, to ai
ProjectPhysX, to GraphicsProgramming

How realistic can a simulation be? Here is a 1 billion cell simulation of an impacting raindrop, fully raytraced in 8K. FluidX3D contains state-of-the-art volume-of-fluid and surface tension models for highly accurate free surface simulations. Combined with my own engine, results are rendered on-the-fly at resolution as large as remaining VRAM can hold. 🖖😋💧📺
https://youtu.be/MmLNQIW_Sic
FluidX3D is on : https://github.com/ProjectPhysX/FluidX3D

sascha, to GraphicsProgramming German
@sascha@mastodon.gamedev.place avatar

My community driven @thekhronosgroup GPU hardware databases for , , and recently hit the 50,000 reports milestone.

Did a small write up on this, including some history on those databases at https://www.saschawillems.de/blog/2024/03/09/gpu-hardware-databases-hit-50000-reports/

Thanks to everyone who contributed (and is contributing) reports 😊

ProjectPhysX, to Nvidia

Another day, another #Nvidia #GPU driver bug that needs a workaround: seems like Nvidia's #OpenCL driver suffers 32-bit uint overflow within the cl::CommandQueue::enqueueFillBuffer call! 🖖🤦‍♂️
https://github.com/ProjectPhysX/FluidX3D/commit/82976f15d2bd20b9188ea623cf0bac046c6c81ce

ProjectPhysX,

Found and reported another bug in #Nvidia #GPU drivers: passing vector types like int3 as #OpenCL kernel parameters is broken. 🖖🙂

ProjectPhysX, to github German

has passed 2000 Stars! It is the most popular software on now! 🖖😊⭐️
https://github.com/ProjectPhysX/FluidX3D
Feeling blessed that my work is useful to so many people across the globe, with users in 75 countries already! 🌍
42% EU, 30% Americas, 25% Asia, 3% Oceania+Africa

ProjectPhysX,

The red lightning bolt continues: has passed 3000 Stargazers on - from 82 countries! 🖖🥳⭐
Releasing this software for free really has turned out win-win: I've received so much valuable feedback, and answered with as many bug fixes and updates, with many more to come. I am enabling cutting-edge simulations for everyone, with very little hardware resources, on literally every computer that has a , regardless of vendor.
👉 https://github.com/ProjectPhysX/FluidX3D

Methylzero, to hpc


If you had to do a lot of linear least square solves, with potentially rank-deficient matrices, what would you use on a GPU? On CPUs, LAPACK's DGELSY does work, but most GPU libraries seem to not implement routines for rank-deficient matrices.

ProjectPhysX, to GraphicsProgramming

#FluidX3D v2.13 is out, providing faster #VTK export with automatic SI unit conversion and a variety of bug fixes!
Full release notes: https://github.com/ProjectPhysX/FluidX3D/releases/tag/v2.13
#GPU #CFD #OpenCL #GPGPU #HPC #GitHub

ProjectPhysX, to intel

This is wild: #FluidX3D can "SLI" together 🔵 #Intel Arc A770 + 🟢 #Nvidia Titan Xp, pooling 12GB+12GB of their VRAM for one large 450M cell #CFD simulation. Top half on A770, bottom half on Titan Xp. They seamlessly communicate over PCIe. Performance is ~1.7x of what either #GPU could do on its own. 🖖😋🖥🔥
#OpenCL shows its true power here - one implementation works on literally all GPUs at full performance, even at the same time. Happy #SimulationFriday!
https://youtu.be/PscbxGVs52o

karolherbst, to random
@karolherbst@chaos.social avatar

Anyway, any OpenCL applications you want to see working on Rusticl and which aren't atm? Or in general? It's slowly getting into the state, where things "just work".

#rusticl #opencl

jannem, to GraphicsProgramming
@jannem@fosstodon.org avatar

@VileLasagna Has a blog post on the relative speed of different compute frameworks on the same hardware and driver.

Tl;dr: on an card, with Nvidia drivers, is the slowest, by far. Fastest is our old stalwart - almost twice as fast when used only for compute. is good, and the least affected by using the card for your desktop at the same time. Read it - it's good.

https://vilelasagna.ddns.net/coding/if-you-want-performance-maybe-you-should-drop-cuda/

gabmus, to linux
@gabmus@fosstodon.org avatar

@oblomov I've been asked today, is #ROCm (on #linux) any good these days? I haven't really been into the #gpgpu space for a while.

Also #askfedi

mwibral,

@gabmus
I use #rocm 5.7 to run #opencl, google's #jax (for pymc), and #pytorch on two vega cards (Vega 64 and Radeon pro WX9100) on arch and ubuntu. They all run Ok, but correct setup needs some googling around, and jax beeds exporting some #xla flags. Situation is much, much better than 2 years ago, though.
@oblomov

toxi, to genart
@toxi@mastodon.thi.ng avatar

Passively participating in #Genuary2024 — Day 8 Chaotic System. In 2012/13 I designed an award-winning audioreactive brand identity system for Leeds College Of Music based on the DeJong strange attractor with tens and hundreds of millions of particles per frame. This massive almost 1 year project consisted of a Mac/PC desktop app (written in Clojure, OpenCL & OpenGL) for exploring the attractor, creating presets and scheduling render jobs for super hi-res print assets (which would take a hours to render and were the biggest image sizes I ever had to deal with, up to 3x3 meters @ 150 dpi). I also had to develop an entire AWS based ad-hoc render farm and asset & user management system for the school to generate personalized video assets, allowing each student to upload their own music, handle audio FFT analysis and beat detection/mapping (all in Clojure) and to create individual sound-responsive clips for their in-school digital signage system and for sharing on social media... Most key aspects were handled via various old thi.ng libraries (e.g. https://thi.ng/simplecl for OpenCL interop). The server app also handled transcoding to dozens of video formats (via ffmpeg) and semi-automatic provisioning of EC2 machines for render/transcoding jobs...

An example video is below (music: Heyoka, Blue Towel)

#GenerativeArt #Vintage #StrangeAttractor #Particles #AudioResponsive #AudioVisualization #Clojure #OpenCL #OpenGL #Branding #BrandIdentity #Renderer #LCOM

1 minute long audio-responsive generative animation of two strange attractor particle systems mapped onto a sphere with various special effects like additive color blending, layering. At the end of the video the sphere zooms out and blends into a static "Leeds College of Music" end screen

toxi,
@toxi@mastodon.thi.ng avatar
pekka, to random
  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • ngwrru68w68
  • everett
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • GTA5RPClips
  • Durango
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • DreamBathrooms
  • provamag3
  • ethstaker
  • osvaldo12
  • tester
  • cubers
  • cisconetworking
  • mdbf
  • tacticalgear
  • modclub
  • Leos
  • anitta
  • normalnudes
  • megavids
  • lostlight
  • All magazines