Wednesday, 2023-08-09

*** choozy <choozy!> has quit IRC01:18
lkclghostmansd[m], no *no* aliases are to be added, that is *not* on the list.02:21
openpowerbot[irc] <programmerjake> the part of fminmax that needs redoing instead of just adding is changing the old fmin*/fmax* ops to be aliases of fminmax, since that was still labeled redo and you only seemed to object to c[ft]fpr* aliases, i assumed fminmax's aliases are included02:25
openpowerbot[irc] <programmerjake> though, i'll note that fmin*./fmax*. with Rc=1 were deleted from binutils but are aliases of fminmax.02:27
openpowerbot[irc] <programmerjake> so, if we have fmin*/fmax* aliases at all, those should be added for consistency02:28
lkclprogrammerjake: please *do NOT* keep adding to the scope of the task for ghostmansd[m]02:46
lkclaliases ARE NOT, WERE NOT and WILL NEVER BE part of the scope of work until such time as a FULL budget and task analysis has been carried out02:47
lkclmy estimates put the task of adding aliases at a MASSIVE 18k EUR budget02:47
lkclyou HAVE to stop adding things to people's plates by changing the scope of their task when you have repeatedly demonstrated a lack of skill in this area.02:48
lkclyour skill is "deep algorithm and research" and i am astounded by how much expertise and knowledge you have in this area02:49
lkclbut putting it bluntly: you suck at time management :)02:49
lkclhelp other people to do research: yes. (the list-analysis of instructions was extremely useful)02:50
*** gnucode <gnucode!~gnucode@user/jab> has quit IRC02:50
lkcldefine the scope of what they need to do and what they *do not* need to do: no. please *don't* load work onto other people's plates, it's simply not your responsibility: it's theirs to negotiate, ok?02:51
lkcl(and for me to keep an eye on, as the project lead, keeping the entire frickin project roadmap - past present and future - in my head)02:52
openpowerbot[irc] <programmerjake> you can lecture me all you want but it doesn't change that i thought you intended him to do the tasks that i explained to ghostmansd, as i explained ^02:52
lkcljacob: you *should not* have added aliases *at all* to ghostmansd[m]'s list of tasks... period.02:54
lkclthis was discussed many months ago, i said NO to aliases and it means NO.02:54
lkclNO means NO.02:54
lkclwe have had this discussion and you goddamn need to listen02:54
lkcli am dangerously ill due to overwork and verbal abuse from several different directions.02:55
lkcli cannot be put under stress under *any* circumstances02:55
openpowerbot[irc] <programmerjake> i understood that to mean no aliases in the simulator, not saying anything about binutils02:56
lkclthis is real serious, i was at "hypertension level 2" blood pressure levels a couple of weeks ago, which is the point where you get strokes and heart attacks.02:56
lkclif we can't *test* the aliases what's the f*****g point of adding them to binutils??02:57
lkclyou have *no idea* how to do linking of tasks together in a chain, it's just not in your skillset02:57
lkclbut i can - i've been doing it for decades.02:57
openpowerbot[irc] <programmerjake> because i recalled there being some tests while those were still real insns and not aliases02:58
lkcland the list of tasks that are inter-dependent - i counted SEVEN of them - came out at a whopping EIGHTEEN THOUSAND EUROs.02:58
lkclnone of which is accounted for in ANY of the budgets because i had ALREADY EXCLUDED ALIASES ENTIRELY02:58
lkclbecause without openpower-isa unit tests WE CANNOT TEST BINUTILS.02:58
lkclyou made an assumption.02:58
lkclyou didn't *ASK*02:59
openpowerbot[irc] <programmerjake> binutils has its own tests too02:59
lkcland you added to ghostmansd[m]'s tasklist FOR WHICH HE IS GETTING PAID LESS MONEY by saying "yes go ahead and do the work"02:59
lkclnow i f*****g well have to write to him to say "terribly sorry ghostmansd[m] but you now have to do EVEN MORE WORK for the same amount of money by taking those out"03:00
lkclwhich is why03:00
lkcli said03:00
lkcland repat03:00
lkclSTOP interfering in other people's tasks when you DON'T have time and budget management skills03:00
openpowerbot[irc] <programmerjake> if i asked about everything we'd never get any work done, this is why #1125 took >1 week instead of a day, because I was busy asking you what you wanted done instead of you leaving it up to me to pick03:00
lkclhelp them with their technical tasks but DO NOT interfere with what they do03:01
lkcli can't cope with this03:01
openpowerbot[irc] <programmerjake> i assumed ghostmansd knew that and so would choose which to do as part of that task from the list i gave, i probably should have said that. sorry03:02
openpowerbot[irc] <programmerjake> sorry luke & dimitry for the trouble i've inadvertently caused03:24
openpowerbot[irc] <programmerjake> lkcl: sorry for being rude to you, i'll try to follow what you asked me to do.06:29
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC07:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:47
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:53
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:54
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:09
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc08:09
ghostmansd[m]Hey guys, keep calm :-)08:13
ghostmansd[m]I don't feel stressed being hit by bunch of aliases08:14
ghostmansd[m]I added them because on TODO list some insns had "no aliases" but fminmax didn't08:14
ghostmansd[m]So, since we already had added minmax aliases, I felt this implied I should support those for fminmax as well08:15
ghostmansd[m]Dropping them is easy, I'll do it, and will also drop minmax aliases until we have a clear and obvious format which allows to automate it at least somewhat08:16
openpowerbot[irc] <programmerjake> ok, sounds good to me!08:17
ghostmansd[m]So, no hard feelings, please, we need to be cooperative and constructive :-)08:17
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:25
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc08:25
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC10:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc10:50
*** hl <hl!~hl@user/hl> has quit IRC10:59
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC11:05
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc11:05
*** hl <hl!~hl@user/hl> has joined #libre-soc11:07
*** hl <hl!~hl@user/hl> has quit IRC12:07
*** hl <hl!~hl@user/hl> has joined #libre-soc12:11
openpowerbot[irc] <sadoon[m]1> 87/161 success, 3 failures, still ongoing for debian12:13
openpowerbot[irc] <sadoon[m]1> God bless bash scripts12:13
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC12:42
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc12:42
ghostmansd[m]sadoon[m], amen!12:49
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC12:51
lkclsadoon: not baaad12:56
*** lkcl <lkcl!> has quit IRC13:05
*** awilfox <awilfox!> has quit IRC13:05
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc13:05
*** lkcl <lkcl!> has joined #libre-soc13:05
*** awilfox <awilfox!> has joined #libre-soc13:05
*** hl <hl!~hl@user/hl> has quit IRC13:16
*** hl <hl!~hl@user/hl> has joined #libre-soc13:18
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC13:18
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc13:18
openpowerbot[irc] <sadoon[m]1> :D14:45
openpowerbot[irc] <sadoon[m]1> Failures are gpgv, libc-bin, and libc6 (which I assume is the same source package as libc-bin)14:46
openpowerbot[irc] <sadoon[m]1> I'm chilling and waiting for it to finish and then will start manually trying the failed ones, gpgv should be easy14:46
lkcllibc6 i'd kinda expect to fail, without some persuasion: there *should* be patches upstream for removing "#ifdef POWER9" and replacing with "#ifdef HAVE_VSX" and so on15:04
lkclbut it will depend on the version15:04
openpowerbot[irc] <sadoon[m]1> It built fine on gentoo so I don't expect it to be something major15:18
openpowerbot[irc] <sadoon[m]1> One day I'll have to get myself a proper IDE or configure my vimrc to make it act like one for such cases15:20
openpowerbot[irc] <sadoon[m]1> My vimrc already has a bunch of useful stuff but searching in multiple files and directories, that I'm missing15:20
lkcli create shell-scripts for that, i have one called "" specially for python files - find . -name "*.py" | xargs grep "$@"15:40
lkclthen call them out with vim macros on either "," or "-" or "=" which are free keys15:40
lkclmap = :'a,!fmt^M15:41
lkclis a good one15:41
lkcluse marker-a ('a), move the cursor, then press "=" and the text between the two is reformatted with /bin/fmt15:42
lkclmap , ^[:w^M:!python %:t^M^M15:42
lkclsaves then runs the current file as a python script15:42
lkcl= , ` - and + are i believe all "free for macro use" but you can likely find them online15:43
lkclno reason why you shouldn't put the current line contents into a yank-buffer which is then extracted and used as the term you want to recursively search for with /usr/bin/find15:44
lkcl(or grep -r)15:44
openpowerbot[irc] <sadoon[m]1> It's a bit too tedious :P16:03
*** octavius <octavius!> has joined #libre-soc17:26
openpowerbot[irc] <programmerjake> luke, i think i'd like to next work on implementing fminmax and c[ft]fpr* in ieee754fpu, what do you think?17:59
openpowerbot[irc] <programmerjake> part of that will be adding minimal fpscr support to ieee754fpu18:00
openpowerbot[irc] <programmerjake> and rounding modes (as in the classes for all that, existing pipelines won't be modified yet)18:01
openpowerbot[irc] <programmerjake> they'd likely be sub-tasks of
openpowerbot[irc] <programmerjake> c[ft]fpr* is a lot simpler in hw than the pseudocode makes it look18:04
ghostmansd[m]No idea WTF happened to binutils between revisions, but the fact is that the last sync with master eats the whole RAM when I build it with multiple jobs.18:05
ghostmansd[m]The prick literally eats all the memory the VM has.18:06
openpowerbot[irc] <programmerjake> basically cffpr* is extract fields, add constant to exponent, shift & mask, and then round18:06
ghostmansd[m]Probably it's related to clangd. I"ll check.18:06
openpowerbot[irc] <programmerjake> clangd?! that shouldn't be part of binutils's for IDEs18:07
openpowerbot[irc] <sadoon[m]1> That's weird yeah18:08
openpowerbot[irc] <sadoon[m]1> Unless there's another clangd we're not aware of18:09
ghostmansd[m]Yep, it's part of IDE18:09
openpowerbot[irc] <sadoon[m]1> welp, libsystemd also failed, gonna have to look into that also18:09
openpowerbot[irc] <programmerjake> or are you running builds from an ide?18:09
ghostmansd[m]programmerjake, yep, correct18:09
openpowerbot[irc] <sadoon[m]1> Could have some crypto stuff that depends on 128 float18:10
ghostmansd[m]And until today this has never been a problem :-)18:10
openpowerbot[irc] <programmerjake> hmm, set clangd to only use a few threads? may reduce memory usage18:10
ghostmansd[m]In fact, I never ever thought this can be an issue :-)18:10
ghostmansd[m]I killed the IDE process and now build w/o it18:11
ghostmansd[m]Things seem to work, the build is in progress18:11
openpowerbot[irc] <programmerjake> how much ram does your vm have?18:11
ghostmansd[m]8 GiB18:11
ghostmansd[m]I really thought that's sufficient :-)18:11
ghostmansd[m]It's not like that I have plenty of RAM18:12
openpowerbot[irc] <programmerjake> oh, if you can set it to at least 16GiB18:12
openpowerbot[irc] <programmerjake> if you have 16GiB host ram, try setting it to 14GiB18:12
ghostmansd[m]Then this will be the whole RAM I have :-D18:12
openpowerbot[irc] <sadoon[m]1> Less jobs perhaps?18:13
ghostmansd[m]Ok, might give it a shot... But wouldn't it be way too much?18:13
ghostmansd[m]I used `make -j`, I assumed it spawns nproc processes...18:13
ghostmansd[m]But I really assume it's clangd18:13
openpowerbot[irc] <programmerjake> make -j spawns infinite processes, you need make -j$(nproc)18:14
ghostmansd[m]Because this one is the first to be killed by OOM killer18:14
ghostmansd[m]Really? Ok, this might be the reason... I think I used nproc before...18:14
openpowerbot[irc] <programmerjake> or make -j2 or -j418:14
ghostmansd[m]That said, -j runs OK without IDE18:15
openpowerbot[irc] <programmerjake> yeah, make -j has a bad default18:15
openpowerbot[irc] <sadoon[m]1> Can't come to the meeting tonight, apologies20:05
*** lkcl <lkcl!> has quit IRC20:25
*** lkcl <lkcl!> has joined #libre-soc20:25
openpowerbot[irc] <lkcl__> sadoon no problem20:34
openpowerbot[irc] <lkcl__> programmerjake, great idea (fpscr support etc.)20:35
openpowerbot[irc] <lkcl__> remember that exceptions are nothing particularly special, but that if they *could* occur, the "Shadow Hold" flag has to be held until the point where it is 100% known that under no circumstances could an exception be raised from that point onwards in relation to that result20:36
openpowerbot[irc] <lkcl__> (this *could* be half-way down a pipeline!)20:36
openpowerbot[irc] <lkcl__> therefore one of the slightly-intrusive outputs from the FPU when a pipeline is created will have to be an *array* of output bits indicating:20:38
openpowerbot[irc] <lkcl__> pipeline stage 1: exception could still occur for this particular result20:38
openpowerbot[irc] <lkcl__> pipeline stage 2: exception could still occur for this result20:38
openpowerbot[irc] <lkcl__> ....20:38
openpowerbot[irc] <lkcl__> pipeline stage N: exception could NOT still occur for this result because it's now "safe"20:39
openpowerbot[irc] <lkcl__> if done instead as a FSM it's much easier, the FSM would have one single bit (stored in a DFF)20:40
openpowerbot[irc] <lkcl__> saying "yep i don't know if it's safe yet that an exception could occur, so for safety's sake i'm leaving the flag high"20:40
openpowerbot[irc] <lkcl__> several clock cycles later...20:41
openpowerbot[irc] <lkcl__> "ok i know now that the safe-point is passed, we're now on to 'normalisation' (or whatever), i can drop the "exception-might-occur" flag"20:41
openpowerbot[irc] <lkcl__> at which point once that flag is dropped, it is an ABSOLUTE 100% ABSOLUTE 100% without fail ABSOLUTE and ABSOLUTE 100% guaranteed indication that the result *CAN AND WILL* be written to the FPR20:42
openpowerbot[irc] <lkcl__> because from that point onwards once that flag is dropped there is ZERO possibility of an exception being raised for that result20:43
openpowerbot[irc] <lkcl__> that's the "contract" that an OoO system has to have, built-in, right deep into the system.20:44
openpowerbot[irc] <lkcl__> we've not had to deal with this before because this is the first time that Exceptions like this have to be raised (from a pipelined resource)20:44
openpowerbot[irc] <lkcl__> at present i "avoid" this problem in TestIssuer by *NOT PERMITTING* anything to occur whilst a LD/ST is in progress... LD/ST being the only place where an exception could occur20:45
openpowerbot[irc] <programmerjake> ok, i'll create some tasks later20:45
openpowerbot[irc] <lkcl__> awesome.20:45
openpowerbot[irc] <lkcl__> this is all in the notes on "Shadow Hold" in the 3d_gpu architecture somewhere20:46
openpowerbot[irc] <lkcl__> Shadow-Hold and Shadow-Cancel20:46
openpowerbot[irc] <lkcl__> it *may* be easier and simpler to do a FSM-only FPU20:47
openpowerbot[irc] <lkcl__> (just like in microwatt)20:48
openpowerbot[irc] <lkcl__> then to get parallelism just... cut/paste multiple FSMs and wire them all up to a multi-input multi-output ReservationStation.20:48
openpowerbot[irc] <lkcl__> there's a class already written that does that, which wires into the ALUCompUnits.20:49
openpowerbot[irc] <programmerjake> i think we should have pipelined FPUs, so we have much less work later when wiring them up to the full OoO cpu20:49
openpowerbot[irc] <lkcl__> ver vague recollection of them being called ReservationStations2?20:49
openpowerbot[irc] <lkcl__> no jacob: please *re-read* what i just wrote above20:50
openpowerbot[irc] <lkcl__> pipelines are *not* the sole exclusive means and method of parallelism.20:50
openpowerbot[irc] <programmerjake> for the reason that 1 pipeline is much smaller than 3-4 fsms for many fp ops due to sharing shifters/mul units etc.20:50
openpowerbot[irc] <lkcl__> it is possible to lay down *MULTIPLE* FSMs and present *all* of them via fan-out FSM1-FSM2-FSM3-FSM4-FSM5 ... fan-in *as if* they were a 5-stage "pipeline"20:51
openpowerbot[irc] <lkcl__> too complex at this point20:51
openpowerbot[irc] <lkcl__> we can get to that later - and there's techniques for dealing with that, by micro-coding20:51
openpowerbot[irc] <lkcl__> you have the *FSM* connected to those pipelines performing shift/multiply (!!!)20:52
openpowerbot[irc] <programmerjake> well, fminmax is like a 1 stage pipeline and c[ft]fpr is like 2 stage20:52
openpowerbot[irc] <lkcl__> as an "extra user"20:52
openpowerbot[irc] <lkcl__> if you can please do things as "split stages" (one class per stage) just like we did with Div Units then a "reorg" can be carried out later20:53
openpowerbot[irc] <programmerjake> all the fsm stuff is too complex due to having to keep multiple fsms out of sync so they don't conflict with shared stuff20:54
openpowerbot[irc] <lkcl__> exaclty: then don't share *anything* at this point20:54
openpowerbot[irc] <programmerjake> yeah, like div is the plan (though much less stages)20:54
openpowerbot[irc] <lkcl__> it's too big a task, but i did actually prepare the ReservationStations(2?) classes for this20:55
openpowerbot[irc] <programmerjake> for 1-2 stages, pipelines are simpler for me to think about than fsms20:55
openpowerbot[irc] <lkcl__> so please don't attempt to "share" anything20:55
openpowerbot[irc] <lkcl__> please split *every* class into "stages" - just like is done in the Div unit work, and in Mul.20:56
openpowerbot[irc] <programmerjake> sharing is part of my reason for not doing fsms, so if i'm doing pipelines no sharing need occur20:56
openpowerbot[irc] <lkcl__> actually, they could and most likely will20:56
openpowerbot[irc] <lkcl__> by - again - splitting out into "micro-coding" jobs20:57
openpowerbot[irc] <lkcl__> so there would be "partial results" called OP_FIRST_PHASE_OF_SOME_FPTASK and OP_FINAL_PHASE_OF_SOME_FPTASK20:57
openpowerbot[irc] <programmerjake> well, ttyl, meeting time20:57
openpowerbot[irc] <lkcl__> where *in between* that, the output from one pipeline gets passed to the Shift pipeline, with a notification "please drop this into OP_FINAL_PHASE_OF_SOME_FPTASK pipeline when you're done"20:58
openpowerbot[irc] <lkcl__> (!!!!!)20:58
openpowerbot[irc] <lkcl__> that's "micro-coding"20:58
lkcloctavius, ghostmansd[m] bi-weekly meeting21:01
ghostmansd[m]1 sec, have to change the place to connect :-)21:16
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC21:23
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc21:24
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC21:32
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc21:33
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC22:06
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc22:06
*** octavius <octavius!> has quit IRC22:12
lkclprogrammerjake: this is what the "difference" is between pipelines and FSMs (effectively nothing as far as the MultiCompUnits are concerned);a=blob;f=3d_gpu/pipeline_vs_fsms.jpg;hb=HEAD23:34
lkclthe caveat is: if you want to avoid starvation of the ReservationStations you *must* have equal-or-greater RS entries (top and bottom) than you have EITHER pipeline-stages *OR* number-of-FSMs23:36
lkcla Micro-Coded design would DEFINITELY have more RS#s than either-pipelinestages-or-num-FSMs23:37
lkcland would "mark" the partial-result as "to be fed BACK into ANOTHER MultiCompUnit for additional processing"23:37
openpowerbot[irc] <programmerjake> yeah, i'm familiar with how pipelines vs fsms work in our core, iirc i've written several of them both23:37
lkclbut that is *not* anything to do with whether FSMs are used or pipelines are used23:38
lkclmy point is that it is a completely separate concept called "micro-coding" which i tried to implement in RSes about... oo... 3 years ago, and it went very badly :)23:38
lkclbut it turned out i had bugs in the ReservationStations class, hence i rewrote it and it became ReservationStations223:39
lkclbut for now, duplication (no sharing of *anything*) is perfectly fine as it's just too complex to design Micro-Coding within the available budget23:40
openpowerbot[irc] <programmerjake> in the case of fminmax, the pipeline is small enough that there's really no point trying to share hardware very much, it's basically a 64-bit integer compare, 2x nan-detection and some muxes23:40
lkclyehyeh, the irony is that the "routing" ends up dwarfing the size of the stages23:41
lkclespecially if you get to say 18-long "processing" and have 18-long RSes, that's QTY 18x something mad like 192 wires23:41
lkclwhich is just... mental.23:42
openpowerbot[irc] <programmerjake> well, i'll go fill out tasks now...23:42
*** gnucode <gnucode!~gnucode@user/jab> has joined #libre-soc23:42
openpowerbot[irc] <programmerjake> what computer wouldn't turn on until I unplugged it for 30s...must have tripped the over-power protection or something ... time to get a better power supply23:50

Generated by 2.17.1 by Marius Gedminas - find it at!