Search
Friday, 19th of October 2018, 4:08:46 UTC
14:22:32
Bike
clasp translate believes really deeply that variables are all in memory locations, so i ahve to rewrite a lot
14:22:55
Bike
why do we have precalc-value-instruction handle immediates? does it actualy get immediates as an argument? we shouldn't need an instruction...
14:23:18
Bike
i think this whole 'literal' class may not be a good idea
14:25:10
beach
Is that in Cleavir, or is it Clasp specific?
14:26:06
Bike
i'm trying to move my discussion of cleavir things to #sicl, though the boundary is sometimes porous
14:30:25
beach
And yes, it is not always clear where it belongs.
14:50:15
drmeister
Bike: there is a very low barrier to improve things in clasp. Let’s talk about it tomorrow or Tuesday.
14:50:29
drmeister
I’m heading up to Nvidia
14:51:16
Bike
will you not be in monday?
14:51:32
drmeister
My talk went extremely well. I had about a dozen people tell me it was the most entertaining and impressive talk.
14:51:59
drmeister
I’m speaking on Monday at the University of the Sciences
14:52:36
drmeister
My talk will be online in a couple of weeks.
14:52:43
beach
drmeister: Congratulations!
14:52:54
Bike
just as well, i have a doctor's appointment
14:53:27
beach
drmeister: Was this the LLVM talk?
14:53:59
drmeister
One comment “the impressive engineering just. kept. coming!”
14:54:41
drmeister
Yes - the llvm talk. Today is a whole day at Nvidia
14:55:04
beach
So you talked about Common Lisp, or at least dynamic languages?
14:55:35
drmeister
Common Lisp. Clasp. Chemistry. Llvm.
14:58:20
pfdietz
Is the talk online anywhere?
14:59:02
beach
<drmeister> My talk will be online in a couple of weeks.
15:26:52
drmeister
Bike: I had the backend and then tagged immediates - so they have a bolted on feel.
15:27:49
drmeister
Come up with something better and float it past me.
15:28:59
drmeister
Be wary that bclasp and cclasp share a lot of code and bclasp needs to keep working. But it can be updated as well.
15:30:55
drmeister
PTX looks like a better target that Opencl for gpu programming.
15:32:55
Bike
i think maybe all we need to do is not generate precalc-value-instruction for immediates, and set up instructions to be able to take non-alloca inputs which i'm doing anyway
15:32:58
drmeister
But more vender lock in
15:34:35
drmeister
Immediates are a complicating optimization.
15:35:33
Bike
maybe, but they're nice to have
15:36:58
drmeister
I have 1.5 hours before I have to head up to nvidia. Getting breakfast
15:53:08
drmeister
Bike. It shouldn’t be too hard to add methods on translate-xxx-instruction and generate PTX - right? Feel free to ask questions for more context.
15:54:04
drmeister
PTX has straightforward three arg arithmetic instructions
15:54:51
drmeister
There are some new barrier and synchronization instructions that we would need to add.
15:55:16
Bike
ptx is nvidia's gpu thing? doesn't it work with vectors?
15:55:37
drmeister
Yes gpu thing - no on vectors
15:56:07
drmeister
Think thousands of simple cores
15:57:02
Bike
wlel yeah but they're organized into warps or whatever.
15:58:55
drmeister
Sure. But warps are more of an api call thing. Cleavir can generate kernels.
15:59:52
drmeister
Then an api call says “run this kernel on this warp of 1024 threads with this memory setup”
16:02:13
drmeister
The kernels support a tiny subset of Common Lisp. Arithmetic with unboxed values, if, tagbody/go
16:03:49
drmeister
We write a macro assembler for gpu kernels.
16:04:54
Bike
might not be worth going through cleavir for that
16:05:10
drmeister
And the HIR gives us a way to optimize the sequence of operations with barriers and to keep the chip busy.
16:05:57
drmeister
Maybe not - maybe a bespoke compiler.
16:07:04
drmeister
We have one for discriminator functions.
16:07:38
Bike
well, that one we might be able to lose, it's pretty much just one operation (discrimination) that needs special codegen
16:07:49
Bike
but we're talking about a whole other language, here
Friday, 19th of October 2018, 16:08:46 UTC