alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - Logs https://freenode.irclog.whitequark.org/panfrost - <daniels> avoiding X is a huge feature
karolherbst has joined #panfrost
stikonas has quit [Remote host closed the connection]
atler has quit [Killed (moon.freenode.net (Nickname regained by services))]
atler has joined #panfrost
macc24 has quit [Ping timeout: 240 seconds]
macc24 has joined #panfrost
anarsoul has quit [Ping timeout: 260 seconds]
klaxa has quit [Ping timeout: 256 seconds]
klaxa has joined #panfrost
heddwch has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
nlhowell has quit [Ping timeout: 260 seconds]
nlhowell has joined #panfrost
camus has joined #panfrost
kaspter has quit [Ping timeout: 245 seconds]
camus is now known as kaspter
guillaume_g has joined #panfrost
camus has joined #panfrost
kaspter has quit [Remote host closed the connection]
camus is now known as kaspter
karolherbst has quit [Ping timeout: 245 seconds]
alpernebbi has joined #panfrost
karolherbst has joined #panfrost
raster has joined #panfrost
stikonas has joined #panfrost
MastaG has joined #panfrost
<cwabbott> well, the point of pre-RA scheduling is precisely to get things in the "optimal-ish" order *before* adding false dependencies
<cwabbott> so the post-RA scheduler forming clauses can still do whatever the pre-RA did, because that would be a no-op
<cwabbott> the advantage of post-RA is that it can be even more aggressive (no need to worry about register pressure) and it can schedule live-range splits better
davidlt has joined #panfrost
<cwabbott> i think that as soon as you have any kind of live-range splitting (spilling or moving) then you kinda want a post-RA scheduler forming clauses
<amonakov> was there something wrong about my questions yesterday? surprised they were ignored
<cwabbott> you *can* do post-RA scheduling and take advantage of the additional temp registers (cf lima gp) but it's really difficult
<cwabbott> amonakov: sorry, there are either 2 or 3 temp registers per instruction: instructions are grouped into pairs (FMA and then ADD) and then pairs are grouped into clauses (up to 8 per clause), and each instruction in each pair can read the result of the previous pair within the same clause through T registers, and ADD can read the result of FMA in the same pair through another T register
<cwabbott> OoO scheduling just means reordering instructions for register pressure/latency/etc
<amonakov> how is it different from just "scheduling"?
<cwabbott> it's the same thing
<cwabbott> i think alyssa had a "scheduler" that just put things into clauses without reordering but it's not the "normal" usage of the term
<cwabbott> not sure if it does reordering by now
<amonakov> I think in GCC we know "pack into clauses" functionality as "bundling" (at least for Itanium, probably other VLIWs too)
<amonakov> thank you
<robmur01> yeah, to first approximations, what Bifrost calls "clauses", IA-64 calls "bundles"
<robmur01> (although maybe bundles are closer to tuples... my approximations are very very approximate)
<amonakov> I think a term like "out-of-order scheduling" should be reserved for more rare stuff where instruction appear out of logical order (due to delay slots or "deferred" register writes within a bundle/clause)
karolherbst has quit [Read error: Connection reset by peer]
karolherbst has joined #panfrost
karolherbst has quit [Read error: Connection reset by peer]
karolherbst has joined #panfrost
kherbst has joined #panfrost
karolherbst has quit [Ping timeout: 245 seconds]
tlwoerner has quit [Quit: Leaving]
tlwoerner has joined #panfrost
<alyssa> cwabbott: TBF I do have patches to do OoO scheduling with the current "scheduler" but yes "bundler" is more accurate.
<alyssa> cwabbott: so if I do clause forming post-RA (out of order but constrained by false deps), do I even need a custom pre-sched pass or could I just drop nir_opt_scheduler in?
<alyssa> I wasn't impressed by nir_opt_schedule when I last looked but maybe I was using it wrong.
<alyssa> amonakov: "reserved for more rare stuff where instruction appear out of logical order" we do this for Midgard, and will soon do this for Bifrost
<amonakov> (ab)using delayed register writes?
<cwabbott> alyssa: in theory you could use nir_opt_scheduler, but yeah rolling your own might be better
<cwabbott> for bifrost it's kinda simpler, because you don't really need to worry about latency at all except for memory latency
<alyssa> "you *can* do post-RA scheduling and take advantage of the additional temp registers (cf lima gp) but it's really difficult" still seems like a sticking point
<cwabbott> well, if you're not willing to give up the additional temp registers then you're kinda stuck in between a rock and a hard place
<cwabbott> in order to do "proper" pressure-limited coalescing you need the ability to insert moves during RA, no matter what RA algorithm you use
<cwabbott> and not to mention spilling
<cwabbott> i guess you could do SSA-based RA by treating each clause as like a giant instruction with multiple definitions and whatnot
<alyssa> F'naaaaaaaaa
<cwabbott> maybe if you really want to use the temp registers, and want to deal with the pain of inserting live-range splits into clauses after the fact, that might be the way to go
<amonakov> at that point, isn't it easier to implement an integrated RA+scheduler? general-purpose RAs are complicated by dealing with register classes and what not, on GPUs its way more regular
<alyssa> Hahahaahahahahaha
<alyssa> sorry. that was rude.
<alyssa> but GPU register allocation is -not- "way more regular", unfortunately.
<alyssa> if anything it's worse depending on the architecture
<alyssa> Bifrost is ok, but something like Midgard?
jernej has quit [Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net]
jernej_ has joined #panfrost
jernej_ is now known as jernej
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
sigmaris has quit [Ping timeout: 260 seconds]
sigmaris has joined #panfrost
karolherbst has joined #panfrost
kherbst has quit [Ping timeout: 245 seconds]
ente has joined #panfrost
alpernebbi has quit [Quit: alpernebbi]
camus has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
camus is now known as kaspter
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
davidlt has quit [Ping timeout: 264 seconds]
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
jernej has quit [Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net]
jernej has joined #panfrost
archetech_ has joined #panfrost
archetech_ is now known as archetech
raster has quit [Quit: Gettin' stinky!]
kaspter has quit [Ping timeout: 245 seconds]
kaspter has joined #panfrost
newton688 has joined #panfrost
thecycoone has joined #panfrost
<newton688> Hi All, I'm seeing some strangeUI problems on my Pinebook Pro and getting some panfrost error messages that seem could be correlated. Would sharing my logs and steps to reproduce the problem be helpful?