Veera | Hello | 15:51 |
---|---|---|
Veera | Luke ping... | 15:52 |
*** Veera_ is now known as Veera | 15:59 | |
lkcl | Veera: hi | 16:15 |
lkcl | nicely done with the SVG images btw | 16:15 |
Veera | thanks | 16:16 |
lkcl | i'm just doing a screenshot of some corrections, each line "in" (including its colour) has to have a corresponding line out | 16:24 |
lkcl | don't put actual lines *through* the boxes like i am putting in the screenshot though! :) | 16:25 |
lkcl | they are just for illustrative purposes | 16:25 |
*** Veera_ is now known as Veera | 16:37 | |
*** Veera_ is now known as Veera | 16:44 | |
Veera | Luke: Did you read last my post about nlnet milestone entry in Bugzilla | 17:45 |
lkcl | Veera, yes. | 17:50 |
Veera | Do those works come under NlNet.Wishbone | 17:50 |
lkcl | yes, under the documentation bug #384 | 17:52 |
lkcl | the budgets are probably not up-to-date now, i have to run the budget-sync program to check them all | 17:52 |
Veera | ok | 17:52 |
lkcl | i assumed you'd be happy with another EUR 300 task btw :) | 17:52 |
lkcl | quite a lot for you now, almost Eur 1,000 at a guess. which is good because less gets wasted on bank transfer fees | 17:53 |
lkcl | the symbiflow one was... hell to install, to be honest | 17:53 |
lkcl | took me a day | 17:53 |
lkcl | but i did it | 17:53 |
Veera | About the images I uploaded to website, are they correct after your advise | 17:54 |
lkcl | i will do a "dpkg list" on the chroot i used, and also a list of pip3 pages | 17:54 |
lkcl | yes, they're great | 17:54 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=651#c9 | 17:54 |
Veera | Sorry my net connection is very bad | 17:57 |
lkcl | Veera: no problem, mine is not reliable either. for IRC, try registering with bnc4you. they maintain a free-access IRC proxy-relay | 17:59 |
mikolajw | hello again | 17:59 |
lkcl | mikolajw, hi | 17:59 |
Veera | I will try | 17:59 |
lkcl | Veera, bnc4you is quite a pain to set up but there is a #bnc4you channel on libera, they are really helpful and responsive | 18:00 |
Veera | lkcl: what to do with symbiflow? | 18:00 |
lkcl | write a dev-env-setup script for it | 18:01 |
lkcl | but not installing conda | 18:01 |
lkcl | and preeeferably not relying too heavily on pip3. | 18:01 |
lkcl | _definitely_ not installing conda, but manually installing each dependency | 18:01 |
Veera | I want some money now. So will try symbiflow in next round | 18:02 |
lkcl | i'm uploading the list of debian packages that ended up being installed in the schroot i created | 18:02 |
lkcl | and for pip3 | 18:02 |
lkcl | ok that sounds perfectly reasonable. | 18:02 |
lkcl | can you do the last image of #651 quickly? | 18:03 |
lkcl | that completes that one 100% | 18:03 |
Veera | yes definetly | 18:03 |
lkcl | ok fantastic. | 18:03 |
lkcl | yes, the symbiflow one is quite complex | 18:03 |
Veera | these nlnet donation have a time period. Where to find their deadline? | 18:04 |
lkcl | it's been extended (by at least 2 years) | 18:04 |
Veera | mean till 2023 | 18:05 |
lkcl | yes, at least | 18:08 |
Veera | Is it good to switch system to Bullseye as it is released? | 18:10 |
lkcl | no it is not. | 18:10 |
lkcl | not for the chroots, at least | 18:10 |
Veera | ok (not for chroots) | 18:10 |
lkcl | i don't recommend upgrading in case something breaks | 18:11 |
lkcl | but, if it does | 18:11 |
lkcl | then (sigh) you can set up a debian/10 schroot | 18:11 |
lkcl | then put all the schroots under that (!!) | 18:11 |
Veera | yeah | 18:11 |
* lkcl doh | 18:11 | |
programmerjake | another alternative to bnc4you is to use matrix (what I use), libera runs a matrix bridge | 18:11 |
ghostmansd-pc | lkcl: I've been looking at execute1.vhdl for quite a while now... do we have an VHDL intro anywhere? | 18:12 |
lkcl | programmerjake: except then he's tied to a permanent internet connection | 18:12 |
lkcl | which is already very unreliable for him. | 18:12 |
lkcl | ghostmansd-pc: honestly i just did google searches and slowly worked it out over time | 18:12 |
programmerjake | matrix keeps track of chat history, it doesn't need a reliable internet connection | 18:13 |
ghostmansd-pc | OK, I thought there's some good guide | 18:13 |
lkcl | if it's non-obvious i'd suggest just cheating, and, looking at the pyfnwriter.py output just copy that :) | 18:13 |
ghostmansd-pc | to me things like `sum_with_carry(64)` are not obvious | 18:13 |
lkcl | but, if you prefer, do a "better job" | 18:13 |
ghostmansd-pc | I mean, I know how to do half-adder and full-adder | 18:13 |
ghostmansd-pc | and, in fact, already did those | 18:14 |
lkcl | that's equivalent to python "sum_with_carry[64]" | 18:14 |
lkcl | sum_with_carry is a variable created by a function | 18:14 |
ghostmansd-pc | so that's an index? | 18:14 |
lkcl | that's the 65th bit | 18:14 |
lkcl | yes | 18:14 |
ghostmansd-pc | OK, got it | 18:14 |
mikolajw | is using Debian a formal requirement? I personally would like not to use it | 18:15 |
ghostmansd-pc | and a_in(x) and b_in(y) correspond to "take bit X from a" and "bit Y from b"? | 18:15 |
Veera | lkcl: Bug 654; I will start learning how to do. | 18:15 |
ghostmansd-pc | > is using Debian a formal requirement? | 18:16 |
ghostmansd-pc | it's not, but the current environment assumes debian | 18:16 |
mikolajw | nice, thanks | 18:16 |
programmerjake | Veera you can connect to libre-soc over matrix: https://matrix.to/#/#libre-soc:libera.chat | 18:16 |
lkcl | ghostmansd-pc, mikolajw, effectively, yes. | 18:16 |
lkcl | mikolajw, there are two reasons: | 18:16 |
lkcl | 1) we don't need the hassle of supporting windows macosx mint {insert-arbitrary-OS-here} | 18:17 |
lkcl | 2) in VLSI ASIC design you ABSOLUTELY have to have a reproduceable build | 18:17 |
lkcl | can you imagine, you are about to drop USD 8 million on 7nm masks to a Foundry | 18:18 |
Veera | programmerjake: ok. I will try. I am using hexchat | 18:18 |
lkcl | and two or more of your developers produce totally different GDS-II files? | 18:18 |
mikolajw | that's a major obstacle to me then | 18:19 |
lkcl | mikolajw, what do you have? | 18:19 |
mikolajw | Arch Linux | 18:19 |
lkcl | some people are running ubuntu | 18:19 |
lkcl | ahh yes, we had someone try that, using debootstrap. | 18:19 |
lkcl | it mostly worked. there was one minor gotcha that they solved when trying to run GUI binaries | 18:20 |
lkcl | pacman -S debootstrap | 18:20 |
mikolajw | oh, I've never heard of that before | 18:20 |
mikolajw | cool | 18:20 |
lkcl | and from there you can run the debian schroots either manually or just see how it goes | 18:20 |
lkcl | mikolajw, you should read this manually an arch-i-fy it https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=mk-deb-chroot;hb=HEAD | 18:21 |
lkcl | if you are really really lucky it might actually work as-is | 18:21 |
lkcl | because most of the commands are inside the debootstrap chroot itself | 18:22 |
lkcl | 24 apt install -y debootstrap schroot | 18:22 |
lkcl | nope. that would need to be "pacman -S debootstrap schroot" | 18:22 |
ghostmansd | another option is using some sort of VM | 18:24 |
lkcl | if you reaaally want to, i'd be fine with a patch that detects if /etc/debian_version exists (at line 24) and optionally does that apt-get, then does something similar for archlinux | 18:24 |
ghostmansd | Perhaps $(cat /etc/*release*) with some grep magic? | 18:25 |
lkcl | mikolajw, yeah, ghostmansd is using qemu, right? and recently tried qemu-in-qemu which, wark-wark :) | 18:25 |
ghostmansd | That was what I used to see in such cases | 18:25 |
mikolajw | that would be a good starter patch | 18:25 |
ghostmansd | Nope, it's still virtualbox. Shitty, but works to some degree. | 18:25 |
mikolajw | (for me) | 18:25 |
lkcl | $ ls /etc/*release* | 18:25 |
ghostmansd | Hm, I usually do cat with grep filter on it, but I guess both work | 18:26 |
ghostmansd | I mean, it depends on what you want :-) | 18:26 |
lkcl | mikolajw, btw have you reviewed the charter? i'd welcome some extra dilbert cartoons :) https://libre-soc.org/charter/discussion/ | 18:26 |
lkcl | if you're happy with it then i'm happy to add your ssh key to the git repos | 18:27 |
mikolajw | I did, except for the cartoons (going to read the cartoons now then) | 18:27 |
Veera | Bye fellows. Quiting. | 18:28 |
lkcl | they're basically the total antithesis of the chater | 18:28 |
lkcl | k Veera | 18:28 |
lkcl | thx | 18:28 |
mikolajw | oh, not too fast, I need to get things working and introduce myself on the mailing lists first :) | 18:28 |
lkcl | ok lol | 18:28 |
* lkcl afk. walk. coffeeee | 18:29 | |
ghostmansd-pc | I've pushed the sketch for addg6s test. It's needlessly complex, awfully written, it might even make anyone here vomit, but this is at least something to use as a playground. What do we have here? | 21:08 |
ghostmansd-pc | 1. We have half-adder and full-adder, atop of which we build full_adder64 (which allows to add two 64-bit numbers and yield the carry). I really hope there's an easier way to do it, I'm not sure how to do it in Python, so I did it in a generic way. | 21:09 |
ghostmansd-pc | 2. We have a generator which might generate all possible 64-bit BCD numbers. I'm not sure how to adopt it to generate some BCD numbers in range, though. | 21:11 |
ghostmansd-pc | 3. We have yet another openpower.simulator.program.Program instance, and it's capable of running addg6s code. That said, there's no batch mode yet. | 21:13 |
ghostmansd-pc | Any ideas and suggestions are welcome. I don't feel like this code is good, the approach is viable, so take this with a grain of salt. | 21:13 |
programmerjake | if you want to calculate carry-out from adding 2 N-bit nmigen signals, all you need is to convert to two N+1 bit signals, add them using the `+` operator, then extract the MSB | 21:15 |
programmerjake | no need to build it up from full-adders | 21:16 |
ghostmansd-pc | I'll think how to make it work as we want. I'd like this: 1) drop the adders, there for sure must be a simpler way (that said, I don't want to copy&paste what the pseudocode generated, this is literally a cheat); 2) I'd like to take some random BCD number pairs, in some _valid_ range, to check; 3) the batch mode is a must. | 21:16 |
ghostmansd-pc | I'm using a pure Python there, in that test. | 21:16 |
ghostmansd-pc | Or, well, at least I have no idea of nmigen. I understand how it works (this is exactly the same logic as with adders), but I'm not sure how to implement it in Python (and basically anywhere except of asm where I can access carry flag directly). | 21:18 |
programmerjake | using nmigen's `+` operator also allows yosys to optimize addition, such as by using the special carry propagation logic in some FPGAs, or by building carry look-ahead networks, or etc. | 21:18 |
ghostmansd-pc | programmerjake: do you mean something like a pair of nmigen.Signal(64)? | 21:19 |
programmerjake | a pair of Signal(65) since you want the space for carry out | 21:20 |
ghostmansd | I'll take a look at Signal, thank you! | 21:21 |
ghostmansd | Sorry if these questions are dumb. I'm a philologist, after all, not an engineering genius... | 21:21 |
programmerjake | for Python, for adding 2 8-bit numbers and getting the carry out, just do `(a + b) >> 8` | 21:22 |
ghostmansd | So this will work, due to use of big ints? | 21:30 |
ghostmansd | If so, that's really good news. I can drop these adders at all. | 21:30 |
ghostmansd | I kinda feel ashamed granted that the solution is so obvious, compared to the stuff I implemented. | 21:31 |
programmerjake | in Python it'll work since it uses big ints, in nmigen you need to use signals 1-bit wider | 21:32 |
programmerjake | np | 21:32 |
ghostmansd | Ok, will cut this thing tomorrow | 21:33 |
ghostmansd | Thank you for your help! | 21:33 |
ghostmansd | At least I managed to recall adders, which, granted my background, is already useful, lol | 21:34 |
programmerjake | actually --- check nmigen's docs, the `+` operator may produce an output 1-bit wider than the inputs avoiding the need for 65-bit input signals | 21:34 |
lkcl | programmerjake, sorry, no, using nmigen Signal here is a major red herring | 21:34 |
programmerjake | yw | 21:34 |
lkcl | if anything SelectableInt(value, 65) should be used because it does the arithmetic at the exact bitwidth | 21:35 |
lkcl | but the same thing can be done in straight python, just & manually with a mask ((1<<66)-1) | 21:35 |
ghostmansd | The reason why I don't want to use SelectableInt is that I'd like to avoid using pieces of code from codegen | 21:36 |
lkcl | or, to get the required carry bit, & with (1<<bit_required) | 21:36 |
lkcl | ok then do it in straight python. | 21:36 |
ghostmansd | I mean, by that point, we could've copied the code literally | 21:36 |
programmerjake | well, if you want to produce output HDL, you'll need to use nmigen somehow... | 21:36 |
lkcl | Paul Mackerras is a brilliant engineer, he analysed carry-bit production and came up with an elegant algorithm | 21:37 |
ghostmansd | And that's not OK, since we're checking exactly this code | 21:37 |
lkcl | programmerjake: this is the simulator. we do not want to involve HDL - at all - as a critical dependency for the *simulator* | 21:37 |
lkcl | the goal here is to write something that's blindingly obvious | 21:37 |
lkcl | OR | 21:37 |
programmerjake | ah, missed that... | 21:37 |
lkcl | to use something that we "trust" as a canonical source | 21:37 |
ghostmansd | Yep, that'd be the best option | 21:38 |
lkcl | where, because we are testing the pseudocode, the pseudocode is "off the list of options to trust" | 21:38 |
ghostmansd | Like we did with BCD conversions | 21:38 |
lkcl | annoyingly | 21:38 |
lkcl | so | 21:38 |
ghostmansd | These tables were great | 21:38 |
lkcl | yeah | 21:38 |
programmerjake | well, if the inputs are unsigned, `(a + b) >> 64` works | 21:38 |
lkcl | yes, that would do | 21:38 |
lkcl | what i suggest is, because the VHDL is not easy for you to read, completely ignore it. | 21:39 |
programmerjake | if their signed, they probably need masking first | 21:39 |
lkcl | work from first principles of the definition | 21:39 |
lkcl | https://www.ibm.com/docs/en/xl-c-aix/11.1.0?topic=functions-addg6s | 21:39 |
lkcl | the version - in python - that you create, ghostmansd, should be as brain-dead-obvious and simple in pure python as you can possibly make it | 21:40 |
ghostmansd | Ok, will do | 21:40 |
lkcl | at that webpage, it says (in words), "Adds source1 to source2 and produces 16 carry bits, one for each carry out of decimal position n (bit position 4xn)." | 21:41 |
ghostmansd | I simply wanted to make something that can be used as a playground | 21:41 |
lkcl | which, now that i look at it, is exactly what's in the spec. v3.0B, p111 | 21:41 |
lkcl | (in words) | 21:41 |
ghostmansd | (a playground that's literally a mine field, I know) | 21:41 |
lkcl | yeh, sigh | 21:42 |
programmerjake | ...i'd go from the isa spec rather than the aix compiler docs... | 21:42 |
ghostmansd | Both literally speak the same language in this case | 21:42 |
ghostmansd | I mean, I get what it does | 21:42 |
* lkcl going to see if power-gem5 has addg6s | 21:43 | |
ghostmansd | Still having a reference values would have been much better | 21:43 |
lkcl | drat | 21:43 |
programmerjake | you can test against real power9 hw... | 21:43 |
lkcl | ohhhh | 21:43 |
lkcl | yeah. | 21:43 |
ghostmansd | If only I had it, lol | 21:44 |
lkcl | of course | 21:44 |
lkcl | ghostmansd: 1 sec | 21:44 |
lkcl | ssh -p922 ghostmand@talos1.libre-soc.org in about 5 mins | 21:44 |
lkcl | ok try it now | 21:46 |
lkcl | we're sponsored by Raptor Engineering with access to a veeeery nice TALOS-II workstation :) | 21:47 |
lkcl | please don't use it for bitcoin mining | 21:47 |
ghostmansd | You caught me | 21:47 |
ghostmansd | That was literally the first option, lol | 21:47 |
lkcl | haha | 21:48 |
lkcl | or monero | 21:48 |
ghostmansd | That was the second | 21:48 |
programmerjake | bitcoin -- optimal for wasting cpu power without making any money from it! | 21:48 |
ghostmansd | Ok, managed to log in | 21:49 |
lkcl | can you do me a favour, try that now, it's 10pm here and i'm winding down... excellent | 21:49 |
ghostmansd | boo :-) | 21:49 |
lkcl | ok so you should be able to use ssh-agent pass-thru to git clone the openpower-isa repo on there | 21:49 |
lkcl | drop some experiments in c/assembler into the openpower-isa repo | 21:50 |
lkcl | hey there should actually be an addg6s intrinsic somewhere, if not, inline asm should do it | 21:50 |
lkcl | i leave you to it. | 21:50 |
programmerjake | you can use power-instruction-analyzer to run tests like I explained yesterday... | 21:50 |
programmerjake | iirc | 21:50 |
ghostmansd | It looks like I'll need to copy my public key | 21:51 |
ghostmansd | To be able to clone gitolite3 openpower-isa repo | 21:52 |
programmerjake | ssh can forward ssh-agent access | 21:52 |
programmerjake | so you keep your private key on your computer | 21:52 |
programmerjake | and the talos server will ask your computer to do the auth | 21:52 |
programmerjake | use ssh -A | 21:54 |
ghostmansd | Still permission denied upon cloning the repo | 21:54 |
ghostmansd | (if you mean ssh -A upon entering Talos) | 21:54 |
ghostmansd | Also tried using `Host ForwardAgent yes` in ssh/config for talos1.libre-soc.org | 21:55 |
programmerjake | you run ssh-agent on your local computer, then run ssh -A when connecting to talos1 | 21:56 |
ghostmansd-pc | $ eval $(ssh-agent) | 21:59 |
ghostmansd-pc | Agent pid 30842 | 21:59 |
ghostmansd-pc | (libresoc)ghostmansd@3mdeb:~$ ssh -A ghostmansd@talos1.libre-soc.org | 21:59 |
ghostmansd-pc | Linux 75-224-155-23 5.6.0-1-powerpc64le #1 SMP Debian 5.6.7-1 (2020-04-29) ppc64le | 21:59 |
ghostmansd-pc | $ git clone gitolite3@git.libre-soc.org:openpower-isa.git | 21:59 |
ghostmansd-pc | Cloning into 'openpower-isa'... | 21:59 |
ghostmansd-pc | gitolite3@git.libre-soc.org: Permission denied (publickey). | 21:59 |
ghostmansd-pc | (I cut some parts of the output, let me know if you need it) | 21:59 |
ghostmansd-pc | OK, let's check tomorrow | 22:00 |
ghostmansd | Or, should I say, today :-) | 22:02 |
programmerjake | hmm, idk. lkcl should be able to help... | 22:04 |
programmerjake | sorry... | 22:04 |
mikolajw | lkcl: I think it would be better if mk-deb-chroot asked before modifying /etc/fstab | 22:42 |
mikolajw | now I'm going to play softbrick roulette when I reboot, lol | 22:43 |
programmerjake | iirc schroot automounts those bind mounts, no fstab modifications necessary | 22:48 |
mikolajw | fortunately no softbricking occured | 22:54 |
mikolajw | /bin/bash: line 10: /etc/sudoers.d/deb: No such file or directory | 23:01 |
mikolajw | oh, it fails to fetch the packages | 23:02 |
mikolajw | can't resolve ftp.debian.org | 23:02 |
mikolajw | (nah, it's something else) | 23:04 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!