strengthen has quit [Killed (Sigyn (Spam is off topic on freenode.))]
depleted has joined #m-labs
depleted has quit [Remote host closed the connection]
<GitHub-m-labs>
[artiq] sbourdeauducq commented on issue #1128: The current code isn't optimized (e.g. a lot of it is in plain - slow - interpreted Python), so it is certainly possible to speed it up. But someone has to study and implement the best ways to do it, it's not trivial. https://github.com/m-labs/artiq/issues/1128#issuecomment-413082027
<whitequark>
it now has comments like: @DEBUG_VALUE: mask <- $r2
Chords27 has joined #m-labs
Chords27 has quit [Remote host closed the connection]
<whitequark>
rjo: so I figured out what's happening
<whitequark>
afaict, rust/llvm lift the x slice in macc() to an array, then read the entire array into an LLVM register, then legalize it into many architecture registers, then spill them because the architecture doesn't have so many of them
<whitequark>
mark IIR::apply and FIR::update with #[inline(never)] and take a look at the assembly
<whitequark>
I might be wrong but it looks much nicer from here
lostlabyrinth24 has joined #m-labs
lostlabyrinth24 has quit [Remote host closed the connection]
<whitequark>
rjo: ok nevermind, I'm wrong
acerbic13 has joined #m-labs
acerbic13 has quit [K-Lined]
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
sb0 has quit [Ping timeout: 272 seconds]
rohitksingh has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined #m-labs
<whitequark>
rjo: ok, I was *almost* right
<whitequark>
what it does is not just reads the entire array into an LLVM register, but rather unrolls the loop
<whitequark>
different path, same semantics
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined #m-labs
<whitequark>
rjo: unfortunately, fixing this is really hard
<whitequark>
not only doesn't rustc expose any knobs to tune the behavior of optimizer, but you probably *want* loop unrolling here
<whitequark>
judging by the #[inline(always)], anyway
<whitequark>
so the root cause is the optimizer having no insight into the register allocator, and there's no good fix for that
<whitequark>
actually, I have an idea
cwre has joined #m-labs
<rjo>
whitequark: right. i definitely want loop unrolling.
rohitksingh has quit [Quit: Leaving.]
cwre has quit [Remote host closed the connection]
<rjo>
whitequark: yes. inline=never on macc is more like the code i am looking for.
<whitequark>
rjo: is this sufficient or should I continue looking?
<whitequark>
code sinking didn't work on this code, but I have a few ideas left
<rjo>
whitequark: not terribly important. the insight that is not my fault and that is is tricky to fix but should be fixable is good enough.
<rjo>
whitequark: thanks a lot.
<whitequark>
rjo: ack.
<whitequark>
rjo: wait, you said inline(never) on macc
<whitequark>
that will unnecessarily pessimize the code
<whitequark>
rjo: what is the "width" "shift" and "offset" fields in FIR/IIR?
<whitequark>
if you explain their semantics I think I can show you a way to write this that's nicer
<rjo>
whitequark: yes. i tried inline(never) on macc _or_ on appply/update.
<rjo>
both are ok-ish code. on macc it doesn't unroll the loop.
<rjo>
and both are actually slower than the original code.
<whitequark>
ah, amusing.
<whitequark>
but that's to be expected
<whitequark>
rjo: I imagine you want macc to be compile-time generic over width
<whitequark>
you can't do that with const generics (because they don't exist) but you can do something with associated constants, to not rely on optimizer propagating that
rohitksingh has joined #m-labs
<whitequark>
though I guess not having width known at compile time isn't very expensive
<rjo>
whitequark: width can actually go away. it'll always be 16-1
sb0 has joined #m-labs
acathla` is now known as acathla
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
cr1901_modern has quit [Read error: Connection reset by peer]
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
larsc has quit [Ping timeout: 248 seconds]
wolfspraul has quit [Read error: Connection reset by peer]
lars_ has joined #m-labs
lars_ is now known as larsc
ynyounuo18 has joined #m-labs
ynyounuo18 has quit [Remote host closed the connection]
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
<GitHub-m-labs>
[artiq] jordens commented on issue #1133: @marmeladapk referring to your experiment above and assuming you are running this on a fresh boot (with the default values of accumulator auto clear), the phase of SAWG channel `n` should be `2*pi*f*(t + n*dt)` up to a common constant. With `f=7*MHz` and `dt=2*ms` and for all the frequency values you give above that phase is zero modulo `2*pi`. I.e. you for those values
sb0 has quit [Quit: Leaving]
rohitksingh has joined #m-labs
X-Scale has quit [Ping timeout: 272 seconds]
nhandler19 has joined #m-labs
nhandler19 has quit [Remote host closed the connection]
rohitksingh has quit [Quit: Leaving.]
Metacity13 has joined #m-labs
Metacity13 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
ThiefMaster18 has joined #m-labs
ThiefMaster18 has quit [Remote host closed the connection]
ldunn21 has joined #m-labs
ldunn21 has quit [Remote host closed the connection]
sb0 has joined #m-labs
jackmcbarn5 has joined #m-labs
jackmcbarn5 has quit [Remote host closed the connection]
felco26 has joined #m-labs
felco26 has quit [Remote host closed the connection]
timeless4 has joined #m-labs
timeless4 has quit [Remote host closed the connection]
c0ded has joined #m-labs
c0ded has quit [Remote host closed the connection]
Caraway29 has joined #m-labs
Caraway29 has quit [Remote host closed the connection]
cr1901_modern has joined #m-labs
X-Scale has joined #m-labs
if`m has joined #m-labs
if`m has quit [Remote host closed the connection]
Deusdeorum29 has joined #m-labs
Deusdeorum29 has quit [Remote host closed the connection]
<GitHub-m-labs>
[artiq] sbourdeauducq commented on issue #1126: Likely the "pauses" are in the compiler, or the rest of the Python program on the PC, or in your network. Try profiling artiq_run plus checking wireshark traces for problems. https://github.com/m-labs/artiq/issues/1126#issuecomment-413245542
<GitHub-m-labs>
[artiq] hartytp commented on issue #675: @jbqubit in the original SU-servo contract I allocated funds for moninj support. However, on more detailed discussion with @jordens, it turned out that moninj support was going to be a lot more work than I'd anticipated. Discussing this with the other ARTIQ-users at Oxford, we agreed that, given the workflow we have in our experiments, SU-servo moninj wasn't going to be
<cr1901_modern>
So I take it you like nix, sb0 :P
smidlers0 has joined #m-labs
smidlers0 has quit [Remote host closed the connection]
eNigmaFx28 has quit [Remote host closed the connection]
tomek12 has joined #m-labs
tomek12 has quit [Ping timeout: 260 seconds]
<GitHub-m-labs>
[artiq] jbqubit commented on issue #675: The only problem I'm aware of with moninj has to do with the GUI layout. An analysis of the resource consumption of moninj in a new Issue would help clarify the situation. https://github.com/m-labs/artiq/issues/675#issuecomment-413351007
<GitHub-m-labs>
[artiq] sbourdeauducq commented on issue #1134: Is restarting the dashboard sufficient or do you *have* to restart the core device as well? Most certainly, you don't have to restart the master.... https://github.com/m-labs/artiq/issues/1134#issuecomment-413376935
<GitHub-m-labs>
[artiq] sbourdeauducq commented on issue #1134: Is restarting the dashboard sufficient or do you *have* to restart the core device as well? Most certainly, you don't have to restart the master.... https://github.com/m-labs/artiq/issues/1134#issuecomment-413376935