@karolherbst@chaos.social titelbild
@karolherbst@chaos.social avatar

karolherbst

@karolherbst@chaos.social

Linux Graphics Developer
Freedesktop Code of Conduct Enforcement team member

Mostly working on Rusticl and Nouveau
Implemented OpenCL in Rust for fun

🏳️‍🌈🏳️‍⚧️ are welcomed.

Nazis, $hitcoin cultists, Right-Libertarians, Longterminists, Tankies, techbros and other fascists not welcomed. This is a shithead free zone.

Private account, please direct all business inquiries to: https://twitter.com/karolherbst

#mesa
#nouveau
#nvk
#opencl
#rust #rustlang
#rusticl
#coc

Dieses Profil is von einem föderierten Server und möglicherweise unvollständig. Auf der Original-Instanz anzeigen

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

uhh, so a few days ago I found out, that passing structs by value in through OpenCL C or SPIR-V in fact doesn't pass the argument by value.

Turns out we don't handle the SPIR-V "ByVal" Function Parameter Attribute...

this might explain a few bugs I've seen in the past...

karolherbst OP ,
@karolherbst@chaos.social avatar
sima , an Random
@sima@chaos.social avatar

dieser toot geht nur auf deutsch, oder zumindest zu faul, den ganzen kontext zu erklären

so auf der strasse oder sonst wo öffentlich von älteren männern geduzt werden, jetzt nach der FFS, ist die erste echte überraschung. aber ja macht sinn in dieser gesellschaft, und macht hässig

🤷‍♀️

karolherbst ,
@karolherbst@chaos.social avatar

@sima I'm just getting a rice cooker honestly

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

After 50 hours, I've finally completed the main game of baba is you....

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

tbh systemd-resolved is really awesome. My biggest use case with it is, that I can still use my local network DNS server for custom domain and DNS resolution, while still gettind my redhat.com things resolved via the VPN provided DNS server

:3

Sadly I still have to manually configure the domain/dns part after connecting to VPN, but I think I can make things persistent somehow.

karolherbst OP ,
@karolherbst@chaos.social avatar

Yes, I have "ipv4.dns" and "ipv4.dns-search" set in NetworkManager, but somehow it still gets dropped after connecting to the VPN.

karolherbst OP ,
@karolherbst@chaos.social avatar

ohh, turns out a negative "ipv4.dns-priority" value on the VPN connections makes all other connections lose their DNS settings. So now I have it set to 0 for the VPN as I don't care about DNS leaks, or rather I prefer if all non redhat.com DNS requests go through my local DNS server 🙃

I might have to play around with the priorities a bit more, but finally that's figured out :)

karolherbst OP ,
@karolherbst@chaos.social avatar

oh, and there also seems to be a special "~." entry for ipv4.dns-search just redirecting everything to that connection and that was also set on my work VPN connection. So double the fun.

Anyway, I've fixed my DNS setup for realz now and I hope it stays that way as in the past I had to fight with my work DNS server breaking apart randomly and other fun things breaking my internet.

karolherbst OP ,
@karolherbst@chaos.social avatar

oh, one thing I should try out as well is, what if I'm on VPN with work and my home while on a different network and stuff. But I think I should be able to figure those things out now at least :)

karolherbst OP ,
@karolherbst@chaos.social avatar

@airlied could just add more custom domains to the vpn connection then, it's a list of values

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

seriously. I don't post half the things I enter here...

karolherbst OP ,
@karolherbst@chaos.social avatar

@serebit it's not even bad stuff specifically, just uhm.. negative stuff and I kinda want to cut down on that.

But it often helps to just write things down without posting it.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I have to use ManuallyDrop, because the Option dance is even more annoying 🙃

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I wonder if Freedesktop.org as an organization has to grow into one actively funding projects, which need to be done.

But on the other side there isn't really enough money available (unless I'm mistaken) in order to fund people work on things full-time.

So I do wonder if FDO should just collect money from desktops and then hire people to work on things in a desktop agnostic way, where foundations of projects could only do that specific to theirs.

karolherbst OP ,
@karolherbst@chaos.social avatar

@sonny yeah, that's I guess the least we could do with the current state.

But I do wonder what if Gnome, KDE, Cosmic, others... would all chime in a bit of money and maybe that's enough for a full/half time position.

But then there is sooooooo much to do and whatever we'd spend that money on, somebody will have some problems with the decision being made.

But then desktops participating is already a big help.

karolherbst OP ,
@karolherbst@chaos.social avatar

@sonny However... FDO being in a neutral position might allow to fund work specific desktops couldn't due, due to regulations on "non-profit" and them not wanting to risk losing their financial status by funding work not directly aligning with their goals.

karolherbst OP ,
@karolherbst@chaos.social avatar

@mupuf oh, I've never heard of that, but that also sounds like a terrible reason to not do it.

karolherbst OP ,
@karolherbst@chaos.social avatar

@mupuf I mean, I'm sure everybody had good people in mind we would be able to trust with that money. That's really the wrong question here.

The question is rather, do we really want to keep such a policy, because somebody abused it in the past?

Of course, us being a non-profit, we have to make sure the money is well spent and everything. And the person we'd pay also needs a mentor who would take care of that part.

The actual question is just if we want to do it or not.

karolherbst OP ,
@karolherbst@chaos.social avatar

@mupuf it doesn't have to be spec work. And you have to trust people at some point.

Sure the org has to decide on what to spend money on, but that doesn't have to be the board itself.

We could appoint a group of people we trust to decide what's worth spending money on which also addresses dire needs in the Linux desktop. Maybe even focus on underfunded areas.

Maybe the CoC team can do it to improve inclusion of people we left behind.

Again, we just have to want to do it.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

today: debugging a memory corruption which goes away with libasan...

karolherbst OP ,
@karolherbst@chaos.social avatar

@VegaHarmonia I knew I was doing something wrong

karolherbst OP ,
@karolherbst@chaos.social avatar

"tcache_thread_shutdown(): unaligned tcache chunk detected" 😢

and it happens on application exit and like.. ahhhhh....

karolherbst OP ,
@karolherbst@chaos.social avatar

anyway, I think this happens, because my threads continue to run even after everything else was released.

So yeah, that's not great, but also shouldn't cause any issues. What I think is causing issues is mostly just how things run at application exit and sometimes the order could mess things up?

Not quite sure :) Maybe it's just LLVM trashing the memory, but I'm also too lazy to dig why exactly this happens.

Anyway, I should terminate my threads early regardless.

karolherbst OP ,
@karolherbst@chaos.social avatar

tldr: JoinHandle doesn't stop your threads on drop.

karolherbst OP ,
@karolherbst@chaos.social avatar

that wasn't too bad: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29880

Though I still don't know what causing the memory issue, but now I'll just blame "undefined order" when exit is run and move on with life 🙃

karolherbst OP ,
@karolherbst@chaos.social avatar

@permik maybe? That certainly would make my use case easier to deal with.

krh , an Random Englisch
@krh@fosstodon.org avatar

TFW you're reading the compiler source to find out what kind of code to generate to trigger the optimization...

karolherbst ,
@karolherbst@chaos.social avatar

@krh isn't that the auto-vectorization programming model?

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

running an LLM inside a font is all fun, but more importantly, can you play doom as a font.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

Implemented enough usm in that AdaptiveCPP runs.

Tried out some tests, but it seems like some of the OpenCL paths are slightly broken (as it e.g. crashes also on the Intel stack).

Not sure I'm in the mood to fix those bits, but at least now I know how much of USM is needed to run it, which.. isn't a lot tbh.

lethalbit , an Random Englisch
@lethalbit@chaos.social avatar

oops, smith chart exploded

karolherbst ,
@karolherbst@chaos.social avatar

@lethalbit kinda looks like a spacy navigation thing for space ships we all use in 10000 years

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I'm considering implementing some parts of cl_intel_unified_shared_memory inside rusticl as it overlaps in a few places with cl_ext_buffer_device_address, which I already have an MR for.

Do we have any reliable tests I can develop against to see if I'm doing it correctly?

AdaptiveCPP needs it (though I prefer them supporting cl_ext_buffer_device_address instead or in addition if SVM semantics aren't needed)

karolherbst OP ,
@karolherbst@chaos.social avatar

@bashbaug Do you know something or do I have to dig through Intel's compute runtime git to find the proper tests for it?

karolherbst OP ,
@karolherbst@chaos.social avatar

@bashbaug mostly just clDeviceMemAllocINTEL, clSetKernelArgMemPointerINTEL and potentially clEnqueue*Intel for now I think.

But my biggest concern is still, that even that much requires SVM semantics and that's really tough to implement in every driver.

And I think it would be helpful to have something like cl_ext_buffer_device_address taken care of first, as this could also be used by e.g. chipstar instead of SVM/USM.

And I think SyCL impls could also use it instead of SVM/USM.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

To speak for marginalized groups is just and important.

However we have to remind ourselves to never make them compete who is the most marginalized group.

No "but this group has it worse, therefore your group is just less important" or other similar nonsense.

We need to work on fixing all those issues at the same time together.

And for that we need to stop to generalize or take one bad actor as the reason on why an entire group of people is bad.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I do wonder if there are anybody actually using GPU compute, be it AI/ML or "old-fashioned", for accessibility purposes?

I played around with some tools doing speech-to-text, but what I'm trying to figure out is, if "make sure rusticl/OpenCL works everywhere" if that actually also helps folks with disabilities.

And I'd happily focus my testing on making sure those things do work everywhere.

karolherbst OP ,
@karolherbst@chaos.social avatar

@Man2Dev oh sure, but I was more interested in knowing what people are using and what acceleration APIs it's using.

Like.. what tools are people using to translate e.g. speech to text, or other related things.

karolherbst OP ,
@karolherbst@chaos.social avatar

@Man2Dev right. I think it should work with rusticl on all supported drivers atm, though it does need a very very very beefy GPU to get reliable results afaik

Or rather my Intel iGPU isn't beefy enough.

karolherbst OP ,
@karolherbst@chaos.social avatar

@Man2Dev right.. just doesn't really change the fact, that you still need a beefy GPU/system to make it somewhat working.

I've seen some of the llama.cpp and whisper.cpp OpenCL code and there is definitely a lot of room for improvement, like.. not busy waiting on the CPU side 🙃

but yeah... I kinda hope we'd get to the point where those things don't really rely on whatever hardware you have, but just works with the hardware you already got.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I'm considering building a home server which I kinda want to use as a private git forge, but maybe also distributed compiler and maybe other things.

And I want it passively cooled with a thermal budget of around 100W for the CPU.

But what I do wonder about is what CPU to choose. Do we have proper ARM boards now in the ITX form factor? Should I go with AMD or Intel? What are the power efficient options here and what option has the lower idle power consumption?

Anybody any experience with that?

karolherbst OP ,
@karolherbst@chaos.social avatar

@dotstdy I do have a passive cooling solution which is able to deal with 100W TDP :)

And I was considering something like the i7-14700T with a turbo TDP of 106W so that would be fine.

I'm just mostly concerned about idle power draw as that setup would run 24/7.

karolherbst OP ,
@karolherbst@chaos.social avatar

@dotstdy I was considering the Streacom DB4 one, which seems to be good enough.

My system won't be a peak load all the time, so even if it drops after a while it's fine.

karolherbst OP ,
@karolherbst@chaos.social avatar
karolherbst OP ,
@karolherbst@chaos.social avatar

@dotstdy because you get more perf by having more threads. I could get a "14600T" but then I have 20 instead of 28 threads and just save a little bit of money. Something like the 14900T would be overkill tho.

Storage and all the other stuff will be the more expensive part of all of this anyway.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

Now that gnome has accent colors, I can finally set the accent to grey as that's how my desktop is destined to be

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

PoE is so cool

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

@ShadowJonathan congrats to the 3rd place (not that this is a competition or anything, but still, great to see lol)

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

The answer to the question of "do I use a floating point arithmetic for currency" was, is and always will be: No

Please just don't do this to yourself.

karolherbst OP ,
@karolherbst@chaos.social avatar

@darkdragon @shironeko @serebit it's deterministic and you can do something about it though.

But it's also something you can plan ahead of time or verify what the legal requirements are, etc...

The issue with floats mostly is, that it's hard to know that any operation is causing any numeric errors.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

for anybody curious, yes the docker "cluster" running on my router is doing great

karolherbst OP ,
@karolherbst@chaos.social avatar

update on my budget docker cluster: I've added the watchtower docker container, which updates other docker containers when the used image tag got updated on dockerhub 🙃

sadly the acme-companion tags don't have a "stable" thing, so I might have to update their tags manually from time to time, but at least all the nginx ones use "stable-alpine" and that's great :)

  • Alle
  • Abonniert
  • Moderiert
  • Favoriten
  • random
  • haupteingang
  • Alle Magazine