Search
Thursday, 12th of April 2018, 19:30:07 UTC
20:55:51
drmeister
Kevslinger: Are you still there?
20:56:11
Kevslinger
Just got out of class and heading to lab now
21:05:49
drmeister
I got this much to work
21:05:50
drmeister
https://i.imgur.com/IBxLVPU.png
21:06:21
drmeister
An (almost) blank screen - the bane of every graphics programmer.
21:06:55
drmeister
Your mission - should you choose to accept it - is to figure out where the frig the graph is disappearing.
21:07:35
Kevslinger
oh, yeah, I think that's where I was at
21:07:44
drmeister
Bike: Are you still there?
21:07:56
drmeister
Could we submit the paper now?
21:08:03
Kevslinger
Making an instance of a cityscape widget doesn't do anything. You need to use the add-graph function
21:08:31
Bike
drmeister: i fixed up the footnotes and everything
21:10:58
drmeister
How did we submit this to easychair?
21:11:26
drmeister
I already interviewed a student worker who might work with me this summer
21:12:15
Shinmera
drmeister: go to easychair, log in, click on your latest paper, click "upload" on the top right box
21:13:05
drmeister
It appears that I just uploaded the PDF before. Do I submit the latex version?
21:13:44
Shinmera
the pdf includes all necessary metadata
21:14:47
drmeister
Huh - that was my confusion - I thought at some point the latex had to go up.
21:15:58
drmeister
https://usercontent.irccloud-cdn.com/file/5M7fUuzJ/clasp-common-lisp-12.pdf
21:16:09
drmeister
And we have foot notes - glorious foot notes.
21:16:36
Shinmera
So who's gonna hold the talk?
21:20:49
Shinmera
Gah! https://filebox.tymoon.eu//file/TVRVMU13PT0=
21:22:28
Shinmera
While we're sharing papers, here's mine https://github.com/Shinmera/talks/blob/master/els2018-glsl-oop/paper.pdf
21:29:16
drmeister
Neat! What is the motion blur on the paper for?
21:30:10
Bike
at the line being messed up
21:31:40
Kevslinger
it's dangling off the edge to show the structure-objects are that sturdy.
21:32:18
Bike
why'd it render it like that. bleh
21:32:26
Shinmera
TeX does what TeX wants
21:33:06
drmeister
We need to fix that - right?
21:33:58
drmeister
Bike - can you wrastle it into place?
21:34:21
Bike
i don't even know why it's doing that
21:34:23
Shinmera
A forced \\ somewhere should fix it
21:35:51
Bike
putting \\ after the "and" before "structure-objects" does it
21:41:54
drmeister
There is already a \\ in there - with or without it it's screwed up.
22:12:30
Bicyclidine
oh, i guess the one i added stuck around
22:17:58
drmeister
I rearranged the list of names until it chose a line break that looked good.
22:19:17
drmeister
stochastic non-linear optimization is my middle name
22:20:03
drmeister
Well - it's actually Ernst August Friedrich - but it might as well be.
1:30:07
drmeister
I took a look at the llvm-ir for arithmetic that Cando generates to optimize molecular geometries using Mathematica.
1:30:09
drmeister
https://www.irccloud.com/pastebin/Mpd710az/
1:31:00
drmeister
Very dense sequences of fmul, fadd, fsub with an occasional fdiv
1:31:19
Bike
i, uh. do not know what's going on there
1:32:07
Bike
really need to multiply by zero
1:33:08
drmeister
It's this compiled...
1:33:10
drmeister
https://github.com/drmeister/cando/blob/dev/include/cando/energy-functions/_NONBOND_POSITIONS_termCode.cc#L1
1:34:00
drmeister
https://github.com/drmeister/cando/blob/master/include/cando/energy-functions/_NONBONDRB_termCode.cc
1:34:13
drmeister
The first paste wasn't pushed yet.
1:34:24
Bike
oh, so it's just translating the code
1:35:07
drmeister
Yeah - I have been meaning for a long time to see what llvm did with it. Whether the temporary variables were put in alloca's or something - but they aren't.
1:36:47
drmeister
I have been thinking about taking this Mathematica program and have it generate S-expressions so that we can load it into Common Lisp and then generate llvm-ir for double precision or single precision.
1:36:55
drmeister
Or to generate GPU kernels.
1:37:01
drmeister
Better to generate GPU kernels.
1:51:41
drmeister
The energy evaluator is slow however.
1:51:44
drmeister
(let ((*trace-output* *standard-output*)) (time (loop for x below 100000 do (chem:evaluate-energy *energy* *pos*))))
1:51:55
drmeister
100,000 evaluations take 200 seconds
1:52:13
drmeister
https://www.irccloud.com/pastebin/RwUQIUI3/
1:53:22
drmeister
It's consing - I'm not sure what though - this is just a loop evaluating this math code.
1:54:30
drmeister
It returns a value - 24 bytes per step
1:55:15
drmeister
The flame graph shows it's spending all of its time in the energy evaluator.
1:55:30
drmeister
https://usercontent.irccloud-cdn.com/file/bIwyZAho/out-18905.svg
1:56:26
Bike
2.4 MB with no GC? well, i guess
1:58:07
drmeister
I need more detailed profiling. It seems slow by about 1000x
1:58:33
drmeister
I must have a stupid bug.
1:58:39
Bike
function self time.............
1:59:16
drmeister
https://github.com/drmeister/cando/blob/dev/src/chem/energyRigidBodyNonbond.cc#L161
2:00:59
drmeister
The stack isn't too deep - I'll try instruments.
2:01:11
drmeister
Did you get AWS to work for you?
2:03:41
Bike
not past logging in. i reproduced the bug i was working on without it.
2:05:34
drmeister
Oh my - profiling with Instruments is useful when you aren't profiling a compiler.
2:06:41
drmeister
https://i.imgur.com/cYbTrmM.png
2:09:35
drmeister
The ones on the right? I think they are how many times the IP was on that instruction when the backtrace was taken.
2:10:08
Bike
that's what i thought, but i don't think those instructions are conditional
2:11:05
drmeister
movapd can be a move to memory
2:11:41
drmeister
I'm a complete neophyte when it comes to writing optimized numerical code. I'm not sure if I'm looking at a horror show or not.
2:11:45
Bike
yeah, but i mean, if i'm reading it right there's a mulsd with 2x followed by a mulsd with 1715x.
2:13:53
drmeister
Yeah - I don't understand that one.
2:14:37
drmeister
Memory accesses should be slow and sqrt should be slow. There are some surprises.
2:15:45
drmeister
This is an Nx(N-1) loop
2:22:04
drmeister
It's 6784 iterations of this loop containing all this math
2:22:20
drmeister
According to TIME that takes 0.002 seconds.
2:23:41
drmeister
290ns per pass through the inner loop
2:26:56
drmeister
I'm either doing something really wrong or computers are pathetic.
2:27:23
drmeister
I'm clearly not slow by a factor of 1000x
2:28:42
drmeister
Because 0.3 ns per pass is ridiculous
2:29:16
Bike
2 ms, 290 ns, or 0.3 ns
2:29:21
Bike
way too many orders of magnitude
2:30:00
drmeister
2 ms for 6784 iterations of the inner loop.
2:30:59
drmeister
I'll explain tomorrow - I have to write a midterm.
3:11:23
beach
Good morning everyone!
Friday, 13th of April 2018, 7:30:07 UTC