2025/03/21

Newest at the top

2025-03-21 11:36:57 +0100 <ski> "three files that contain the code that is transformed zero, one, and two times" -- sounds like it, yea
2025-03-21 11:36:14 +0100 <sprout> needs egel
2025-03-21 11:35:57 +0100 <ski> does any of those use source transformations ?
2025-03-21 11:34:20 +0100 <ski> /implementations
2025-03-21 11:34:06 +0100 <ski> yea, looks like a quite nice variety of different backend languages
2025-03-21 11:32:53 +0100 <ski> can't recall hearing about that one, before
2025-03-21 11:32:47 +0100 <ski> "Scheme->C" is a particular Scheme implementation ?
2025-03-21 11:32:40 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-03-21 11:30:36 +0100 <Athas> Nice work, really!
2025-03-21 11:30:31 +0100 <Athas> See https://www.bcl.hamilton.ie/~qobi/ad2016-benchmarks/
2025-03-21 11:28:54 +0100 <ski> ah
2025-03-21 11:28:32 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-03-21 11:28:29 +0100mniip(mniip@libera/staff/mniip) mniip
2025-03-21 11:28:04 +0100 <Athas> No, it is a bunch of implementations of the same program in various languages, followed by a performance comparison. Stalingrad is by far the fastest.
2025-03-21 11:27:20 +0100 <ski> it calls out to Scheme code, from Haskell ?
2025-03-21 11:26:51 +0100 <Athas> This is code from a benchmark suite to demonstrate how wonderful Stalingrad (an extension of Stalin) is.
2025-03-21 11:26:14 +0100 <ski> ah
2025-03-21 11:26:09 +0100 <Athas> ski: yeah, same people.
2025-03-21 11:25:56 +0100 <ski> any relation to the Stalin Scheme implementation, Athas ?
2025-03-21 11:25:39 +0100 <ski> mhm
2025-03-21 11:25:23 +0100 <ski> (lot of use of `let'-`in', rather than `where'. some redundant brackets (e.g. when defining some infix operators, or sometimes around function calls, or even conses). incorrect `Show' instance (ought to use `showsPrec', not `show')
2025-03-21 11:24:47 +0100synchromesh(~john@2406:5a00:24cf:bb00:19d8:9179:8622:bdf3) (Quit: WeeChat 4.1.1)
2025-03-21 11:24:38 +0100 <haskellbridge> <Liamzee> will probably try to figure out how to get it to cache lucid later
2025-03-21 11:24:15 +0100 <haskellbridge> <Liamzee> erm, not the lib, but the adapter for the lib
2025-03-21 11:23:44 +0100 <Athas> ski: it's written by Scheme programmers and specifically to resemble the style of a corresponding Scheme program.
2025-03-21 11:22:57 +0100 <haskellbridge> <Liamzee> oh well
2025-03-21 11:22:56 +0100 <haskellbridge> <Liamzee> [exa]: so it's the fault of the person who made the servant lib
2025-03-21 11:22:48 +0100 <ski> that `stalingrad' code looks a bit weird
2025-03-21 11:20:41 +0100 <Athas> tomsmeding: I gave it a shot yesterday, but received some type errors I couldn't figure out. Maybe I will try again.
2025-03-21 11:18:11 +0100 <tomsmeding> Athas: if you haven't yet, I recommend implementing 'ff' by Forward over ForwardDouble, I suspect it'll help quite a bit
2025-03-21 11:17:50 +0100mniip(mniip@libera/staff/mniip) (Ping timeout: 604 seconds)
2025-03-21 11:17:16 +0100 <tomsmeding> perhaps that just introduces busywork here? I don't know
2025-03-21 11:16:53 +0100 <tomsmeding> oh, the zero is relevant if you're doing nested AD I guess
2025-03-21 11:16:33 +0100 <tomsmeding> the Forward in 'ad' is a sum type with special cases for zero (not sure why?) and constants
2025-03-21 11:15:13 +0100 <Athas> Yes, forward mode is better here, but it is still slow.
2025-03-21 11:15:04 +0100 <tomsmeding> I have no clue juts from looking at the code; I would perhaps profile to see if there's anything surprising, but it's bound to produce noise here
2025-03-21 11:14:12 +0100 <tomsmeding> the input to f is also only length 2, so doing forward mode twice has a chance of being competitive with reverse AD
2025-03-21 11:14:08 +0100 <Athas> Yes.
2025-03-21 11:14:02 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 272 seconds)
2025-03-21 11:13:08 +0100 <tomsmeding> the closest match is 'ff'?
2025-03-21 11:13:01 +0100 <tomsmeding> oh, right
2025-03-21 11:12:58 +0100 <Athas> The hand-written code only has forward-over-forward.
2025-03-21 11:12:46 +0100 <Athas> I have done all variants in my 'ad' code.
2025-03-21 11:12:24 +0100 <tomsmeding> I was looking at the stalingrad example, but it seems you've implemented that with a proper reverse-mode gradient
2025-03-21 11:11:41 +0100 <Athas> tomsmeding: in which program?
2025-03-21 11:10:51 +0100 <tomsmeding> is that intentional?
2025-03-21 11:10:48 +0100 <tomsmeding> Athas: I see a 'gradient' function that uses forward AD
2025-03-21 11:08:36 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 264 seconds)
2025-03-21 11:07:05 +0100 <tomsmeding> I like this blast-to-the-past Haskell style
2025-03-21 11:06:38 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 245 seconds)