Saturday, 2022-10-15

*** jab <jab!~jab@user/jab> has quit IRC00:31
*** jab <jab!~jab@user/jab> has joined #libre-soc00:32
*** jab <jab!~jab@user/jab> has quit IRC03:12
*** ghostmansd <ghostmansd!> has quit IRC03:14
*** jn <jn!~quassel@user/jn/x-3390946> has quit IRC03:35
*** jn <jn!~quassel@2a02:908:1065:960:20d:b9ff:fe49:15fc> has joined #libre-soc03:36
*** jn <jn!~quassel@user/jn/x-3390946> has joined #libre-soc03:36
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC06:12
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc06:27
*** psydroid <psydroid!~psydroid@user/psydroid> has quit IRC11:26
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has quit IRC11:26
*** underpantsgnome[ <underpantsgnome[!~tinybronc@2001:470:69fc:105::2:1af6> has quit IRC11:26
*** EmanuelLoos[m] <EmanuelLoos[m]!~emanuel-l@2001:470:69fc:105::6260> has quit IRC11:26
*** sadoon[m] <sadoon[m]!~sadoonunr@2001:470:69fc:105::1:f0fa> has quit IRC11:26
*** cesar1 <cesar1!~cesar@2001:470:69fc:105::76c> has quit IRC11:26
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has quit IRC11:26
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has joined #libre-soc11:30
*** cesar <cesar!~cesar@2001:470:69fc:105::76c> has joined #libre-soc12:09
*** EmanuelLoos[m] <EmanuelLoos[m]!~emanuel-l@2001:470:69fc:105::6260> has joined #libre-soc12:09
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has joined #libre-soc12:09
*** sadoon[m] <sadoon[m]!~sadoonunr@2001:470:69fc:105::1:f0fa> has joined #libre-soc12:09
*** ghostmansd <ghostmansd!> has joined #libre-soc12:27
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC12:35
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc12:38
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC12:53
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc12:58
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC13:21
lkclmarkos, if you're up for another laughably-simple "challenge", and wanted to learn REMAP Indexing, i've an algorithm for you :)13:39
lkclwhen you're well-rested13:40
*** lxo <lxo!> has joined #libre-soc14:11
markoslkcl, shoot, the coming couple of weeks are going to be slow but I'll be more available by the end of the month14:13
lkcl7 instructions to do the inner loop of chacha20.14:17
markoslooks trivial14:18
lkcla Vertical-First Loop, where "svstep." will set CR0.EQ=1 on end-of-inner loop, so you can bc back around the xor/add/ROL32 instructions14:19
lkclthe *very next instruction* is a CTR-dec-based bc back to setvl to do it again, where mtctr sets CTR to 8, 12, or 2014:19
lkclit's so astoundingly simple that it's worth doing, because the *entire lot* - the entire core algorithm, all rounds - fits into a single L1 Cache-Line14:20
lkclthe "tricky" bit will be setting up the REMAP Indices14:21
lkcli say "tricky" - it's not.14:21
markosok, I'll take a look on Monday now I have to reconfigure my whole lab here, putting some systems into their boxes, network switches etc14:21
markosit's a cable mess -or will be even more shortly14:21
lkcltoday i did a different kind of "cabling" - fitting a rubber propane hose onto a 3-ring camping stove14:22
lkclthe tendons in my wrists are still hurting14:22
lkclit took over 20 minutes to get the fricking hose onto the brass fitting, putting far more pressure on it than i have strength in my arms (because of RSI)14:23
lkcli'll live :)14:23
markosyes, and you have to be very careful with these pipes14:24
markoscouldn't you ask someone else to do this?14:25
lkclthe end-nozzle is on a free-rotating "thing"14:25
lkclit's done, now.14:26
lkclon the regulator was fine, it was a smaller diameter nozzle14:26
markosI don't mind doing electrical work on my own, at least simpler stuff, but I don't touch anything that involves gas pipes and boilers14:27
lkcland was "jagged".  the one on the cooker was "rounded" bulbs - so the hose kept popping back off.14:27
markostoo scared I'm going to blow things up14:27
lkclbarbed. you know what i mean14:27
lkclwell the regulator has a valve/indicator14:27
lkcland i can always take a deep sniff :)14:28
markosactually, how's this, you pick a port of a full crypto library to port to svp6414:30
markosand we do it14:30
markosthis should be more tricky than video codecs14:30
markosbut it would be worth a shot14:30
markospick a crypto library to port I mean14:31
markosnot just a few functions14:31
markospicking a library would have the benefit of unit tests which we can use14:32
markosand it would also make for an important part of an SVP64-able linux part14:32
markosI mean video codecs are cool, but crypto is much more fundamental for an OS14:33
markoss/linux part/linux port14:33
markosalso it would show even more limitations we might have currently and we could fix them long before we finalize the spec14:34
lkclnice idea - out of budget though for this first crypto-primitives grant14:48
lkclthere's enough to get perhaps 3 maybe 4 algorithms done, plus a preliminary report, proofs, and HDL implementations14:49
lkclfrom that we can, yes, go for a full crypto-library.14:49
lkclthe other laughably-simple on is ec25519.14:50
lkclall of the "difficult" functions - big-mul, big-shift, big-add, because they're all 256-bit (including the modulo arithmetic one) it's a fixed VL of 4, for QTY 4of 64-bit registers14:52
lkclthat *is* a high-value target14:56
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC14:57
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:57
markosI'd still pick a library like this and just finish just 3-4 algorithms then15:17
lkclthese are... depressing15:19
markosI think my method of integrating python simulator with C has benefit compared to a straight asm algorithm for 2 reasons, a) parallel testing of binutils b) actual real testing of the algorithm using provided unit tests and if you're patient enough, actual software that uses it :)15:20
markosoh wow15:21
markos1k lines15:21
markoswell that's not surprising15:21
lkclfull loop-unrolled.15:22
markossimd code hates branches15:22
lkclyes i love the integration-idea15:22
lkclalthough the typical way crypto is done is, you have exactly *one* unit test - the reference input/output from the paper.15:23
lkcland it's entirely standalone programs.15:23
markossure, but one might claim that the unit test is 'rigged'15:24
markosusing a reference *unmodified* unit test from a well established crypto library makes the point moot15:25
markosin the first case you have to prove that both your function *AND* the unit test are correct15:25
lkclnah. crypto algorithms are a high-value taget, it's usually 8-10 years before they get adopted15:25
markossometimes they may be trivial but in most complex crypto algorithms they are not15:25
lkclthe number of people studying them and picking them apart is at least one order of magnitude higher than any other software15:26
markosmy point is, if you provide both implementation and unit test, you have to make sure the unit test is also valid, testing it against a known algorithm or a reference implementation15:26
markosthough having said that, these can probably be found online anyway15:27
lkclall traced back to the original paper15:27
markosok indeed15:27
lkclwhich in turn is studied to death by academics and security researchers15:27
lkcl540 lines for VSX.15:28
lkcland that's macros, so it's fully loop-unrolled (again), which will start to hit L1-I/D-Cache to L2 bus-contention on IBM POWER915:31
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC15:51
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc15:52
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC16:17
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc16:17
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC17:43
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc17:44
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC17:49
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc17:49
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC17:56
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc18:56
*** jab <jab!~jab@user/jab> has joined #libre-soc19:14
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC19:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc19:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC19:52
*** lxo <lxo!> has quit IRC21:38
*** lxo <lxo!> has joined #libre-soc21:38
*** lxo <lxo!> has quit IRC21:43
*** lxo <lxo!> has joined #libre-soc21:46
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc21:48

Generated by 2.17.1 by Marius Gedminas - find it at!