Friday, 2022-07-08

lkcltoshywoshy, this link's non-functional (and linked from wikipedia)
lkclghostmansd[m], moornin13:01
lkclthe reason for not allowing vec2/3/4 overrides is down to swizzle, which can change the length of the *source* subvector.13:01
lkclbut not the dest subvector13:01
lkcl(or it is the other way round, i forget which)13:02
lkclmv.swizzle RT.XYZ RA.W1Y13:03
lkclthe destination is a vec3, but RA is a vec2, because of the "1"13:03
lkclif any of that's allowed to be macro-i-fied it's going to get out-of-hand pretty quickly13:04
lkclincluding the "meaning"13:05
lkclcopying a 3-long swizzle source to a 2-long destination is not obviously a syntax error, it may be deliberate13:06
lkclso would not have a syntax error thrown13:06
lkclputting a foot down and saying "vec2/3/4" is a mode, modes are part of the instruction, instructions are not permitted to be macro'd13:07
lkclif people *really* want to do it they can use "gcc -E" which works really well to perform much more sophisticated #defines.13:07
ghostmansd[m]Ok fair enough, let's consider each of them as a mode13:44
ghostmansd[m]And, as I understood, key-value modes can all have "value" part defined, right?13:45
ghostmansd[m]Or, well, macro'd. As long as it can be expanded to constant, of course.13:47
lkclthere should only be those two: sm= and ew=13:58
lkclpredicate masks are obvious because they select registers. registers should be macro-selectable13:59
lkclew=8/16/32/64 is *the* sole exception to the rule of not letting "modes" be changeable14:00
lkcli can see value in allowing macro redefines changing the maximum number of registers allocated and at the same time adapting the element width14:01
ghostmansdActually there're more. Key-value pairs which I found are: m, dm, sm, ew, sw, ff, pr.21:05
ghostmansdAll m/dm/sm rely on the same stuff, though: decoding the predicate.21:06
ghostmansdSame for ew/sw: they decode the width.21:06
ghostmansdff/pr decode RC1 and branching.21:08
ghostmansdSo, yeah, not much options.21:08
lkclyep. puzzlingly/amazingly21:43
lkcl"m=XX" is short-hand for "dm=sm=XX"21:43
lkclyes, ff/pr are modes21:44
ManiliHi all! I hope you are doing well all over the world! I'm pretty much new to the libre-soc project and after talking to lkcl he told me to join here and ask my questions. First of all I'm really curious to know the actual status of the GPU development both from SW and HW sides? I have read the website before, but I'm looking for current updates.22:36
ManiliThanks a lot guys.22:36
octaviusHi Manili, nice to meet you :)22:38
octaviusThe libre-soc core is able to operate in place of a microwatt cpu atm (recently Tim was able to run a basic server), however I don't know the details of the GPU instruction progress22:38
lkclManili, welcome22:40
programmerjakeKazan, a Vulkan driver is somewhat stalled at the moment (I've been busy working on hardware stuff)22:41
lkclthe "GPU" aspect is hard to pin down because we're designing a hybrid CPU-VPU-GPU22:41
lkcltherefore the very first thing that has to be done is: design a Scalable Vector Processor ISA22:41
lkcloh and along the way make sure it has the capability and capacity that is normally covered *by* GPUs.22:42
programmerjakeWe still haven't started on some GPU-specific instructions such as triangle rasterization acceleration or texture instructions, most of the general compute stuff needed for GPUs is coming along nicely22:42
programmerjakewe're just starting on getting compiler support, so far we have mostly complete (so-far) binutils support, but gcc and llvm haven't gotten very far22:43
ManiliHi octavius, lkcl and programmerjake. You are all SUPER FAST guys! I really didn't expect that:D  So looks like I shouldn't start my journey from GPU part of the wiki. Any suggestions?22:45
lkclthe Simple-V spec22:46
lkcl1 sec22:47
programmerjakewell, if you don't mind getting into the deep end, you could start with SimpleV22:47
* lkcl must put this on the page
ManiliOMG! That's a lot to read but I'll read it as a reference book so just try to understand the big pic.22:51
lkclthe total page count for Simple-V is around 160.22:52
lkcl(bear in mind that the Power ISA v3.1 specification is 1,400)22:52
ManiliOh, got it.22:53
lkclyou may find the insights here useful
lkclif you are familiar with any [mis-named] "Vector" ISAs which happen to have the word "Vector" in their name, such as AVX-51222:53
lkclor the PackedSIMD VSX22:54
lkcl200+ pages of the PDF are actually *Scalar* instructions and supporting tables and pseudocode,22:54
lkclbecause SV does not add - or contain - Vector instructions in any way, shape or form22:55
lkclit contains the *abstracted concept* of Vectorisation, aka "looping".22:55
lkclyou'll see in the overview.22:55
ManiliOK, so let's do it!22:56
ManiliIs that the reason behind not choosing the RISC-V (i.e. its vector instruction set was not ready yet)?22:56
lkclthere are multiple reasons for not choosing RISC-V22:57
lkclfrom a technical perspective, RISC-V is slowly being discovered to be inadequate.22:58
ManiliThanks a lot guys. That was a lot of info. Please gimme some time to read all these invaluable docs and I'll brb with a lot of questions.23:02
lkclManili, :)23:02
lkclwhat's your interest, here? what motivates you, if you don't mind me asking?23:02
lkclare you in academic research? or a Libre/Open developer?23:03
ManiliSure! I love all different aspects of the project. So I'm currently just searching around to find what really fits me. About your second question, I'm learning VLSI and chip design so I found this project really interesting to learn new stuff.23:07
ManiliI'm looking to help the community in the future if I can.23:08
lkclnice. well if it helps at all we have NLnet funding, and there's a huge variety of things at different levels23:47

Generated by 2.17.1 by Marius Gedminas - find it at!