About Me

Michael Zucchi

 B.E. (Comp. Sys. Eng.)

  also known as Zed
  to his mates & enemies!

notzed at gmail >
fosstodon.org/@notzed >


android (44)
beagle (63)
biographical (104)
blogz (9)
business (1)
code (77)
compilerz (1)
cooking (31)
dez (7)
dusk (31)
esp32 (4)
extensionz (1)
ffts (3)
forth (3)
free software (4)
games (32)
gloat (2)
globalisation (1)
gnu (4)
graphics (16)
gsoc (4)
hacking (459)
haiku (2)
horticulture (10)
house (23)
hsa (6)
humour (7)
imagez (28)
java (231)
java ee (3)
javafx (49)
jjmpeg (81)
junk (3)
kobo (15)
libeze (7)
linux (5)
mediaz (27)
ml (15)
nativez (10)
opencl (120)
os (17)
panamaz (5)
parallella (97)
pdfz (8)
philosophy (26)
picfx (2)
players (1)
playerz (2)
politics (7)
ps3 (12)
puppybits (17)
rants (137)
readerz (8)
rez (1)
socles (36)
termz (3)
videoz (6)
vulkan (3)
wanki (3)
workshop (3)
zcl (4)
zedzone (26)
Wednesday, 11 December 2019, 00:31

HD7970/GCN1 + Vulkan

I have an old discarded GCN1 card from work that I'm using in my new machine - that's the HD7970. Apart from being a 3-slot power-hungry monster plugged into an itty bitty little ITX board it's still a great graphics card for a workstation.

Unfortunately for me though, it doesn't have any OpenCL support in any current Linux drivers. You have to go back to the catalyst driver, but that doesn't work on any modern distribution or kernel (it last supported Ubuntu 14.04). It's unlikely AMD will ever get the ROCm code to support it, and it's unclear if there's even enough public documentation for any outsider to be able to get the necessary kfd driver working.

But I did find out it can at least support vulkan! Until this new machine I've just been using Ubuntu 16.04 so never had new enough anything to get vulkan running anywhere. You have to change from the radeon to the amdgpu driver but everything works well. On the internets people seem upset that you either get vulkan or video-decode but my experience with the video decode has been very poor so I don't think I'm missing much. I don't really watch videos anyway.

So I've switched over to amdgpu and I've finally had a chance to play with vulkan. I've gone through the lunarg sdk tutorial and 'minimal' compute example, but converting the c++ to plain c. The compute-only path is definitely not as convenient to use as OpenCL (this is something of an understatement!) but I suppose it's something and I wanted to learn about it anyway.

I've also started playing a little with clspv to try compiling some OpenCL to vulkan SPIR, but there are some fairly major limitations. And just invoking kernels is messy.

A bit of fun using genetic algorithms. It's a bit of a one-trick-pony but can look interesting with the right parameters. This took about 1M generations.

I don't really have a goal in mind for now although I was looking at some very basic 'genetic' art (my implementation isn't really genetic, it's just a random search with one prior generation) a couple of weeks ago, so maybe that. It's a lot of work compared to using JavaFX though.

Tagged hacking, vulkan.
Prototyping - Vulkan | More Computer Shit
Copyright (C) 2019 Michael Zucchi, All Rights Reserved. Powered by gcc & me!