Back to Molly Rocket Molly Rocket
Molly Rocket games and everything even tangentially related
 

  FAQFAQ  SearchSearch  UsergroupsUsergroups 
Log inLog in  RegisterRegister
 

Larrabee at SIGGRAPH
Goto page 1, 2  Next
 
Post new topic Reply to topic    Molly Rocket Forum Index -> Sparse Virtual Texturing
View previous topic :: View next topic  
Author Message
Won



Joined: 21 Sep 2005
Posts: 506
Location: New York

PostPosted: Mon Aug 04, 2008 5:32 pm    Post subject: Larrabee at SIGGRAPH Reply with quote

Looks like the paper is out:

http://portal.acm.org/citation.cfm?doid=1360612.1360617

Unfortunately, it requires ACM membership, or being/knowing someone at Intel or RAD (who probably have already seen this stuff beforehand).

Some interesting information here. Apropos to SVT, the paper mentions handling page faults, but doesn't really describe the mechanism (Pentium-like?). I wonder if this feature could be hijacked to help SVT. It would also be really sweet if Larrabee's DX/OGL implementations were open-source, fostering hackability. That would be the Mutt's Nuts.*

I'm also pretty psyched about the notion of Larrabee native code. It seems like it has much potential, beyond the typical GPU/GPGPU stuff. I wish the paper went into a bit more detail about the execution environment on Larrabee. It is interesting that you can do I/O on Larrabee, that is proxied by the main processor/OS. What does software look like on Larrabee? It sounds like there is paging, but I wonder how closely Larrabee resembles a Pentium. Is there memory protection? Rings? Segmentation?

* I think you have to be Casey to say things like this and not sound foolish.
Back to top
View user's profile Visit poster's website
NocturnDragon



Joined: 23 Jul 2008
Posts: 3

PostPosted: Tue Aug 05, 2008 2:43 pm    Post subject: Reply with quote

http://softwarecommunity.intel.com/articles/eng/3803.htm here you can find the paper without needing ACM membership.

http://softwarecommunity.intel.com/UserFiles/en-us/File/larrabee_manycore.pdf
Back to top
View user's profile
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Tue Aug 05, 2008 6:08 pm    Post subject: Reply with quote

It doesn't look to me like Larrabee offers anything too exciting for SVT, because of its use of dedicated texture filtering hardware which is responsible for mipmapping and anisotropic filtering and everything, which means it's going to do all the address generation itself. So I think you'd have to implement SVT exactly the same as you do on every other GPU.
Back to top
View user's profile Visit poster's website
soal



Joined: 12 Oct 2005
Posts: 29

PostPosted: Wed Aug 06, 2008 2:37 am    Post subject: Reply with quote

I personally can't wait until games are released that run entirely on larrabee. It'd be a sweet demoscene!
Back to top
View user's profile
Won



Joined: 21 Sep 2005
Posts: 506
Location: New York

PostPosted: Wed Aug 06, 2008 5:10 am    Post subject: Reply with quote

sean wrote:
It doesn't look to me like Larrabee offers anything too exciting for SVT, because ... it's going to do all the address generation itself.


Well, if you can do fairly arbitrary things during a page fault (which can be generated by the texture unit but handled by the x86 core) then you ought to be able to do fairly interesting things. The straightforward thing would be to block and let other threads progress while you wait for the texels to arrive. But maybe you can handle the fault by upsampling from a lower mip level (avoiding double faults), and send an asynchronous message to the host to give it the actual texels sometime in the near future. You wouldn't really be manually managing the page table, or padding your texture tiles.

Of course I have no idea whether Larrabee or even x86 can do this.

@soal

The procedural generation opportunities are endless. It'll be the best thing since the Gravis Ultrasound.
Back to top
View user's profile Visit poster's website
ryg



Joined: 31 May 2007
Posts: 276
Location: Kirkland, WA

PostPosted: Wed Aug 06, 2008 10:40 am    Post subject: Reply with quote

Won wrote:
@soal

The procedural generation opportunities are endless. It'll be the best thing since the Gravis Ultrasound.

Stop it, you two, you're giving me a headache!
Back to top
View user's profile Visit poster's website
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Wed Aug 06, 2008 2:54 pm    Post subject: Reply with quote

It's certainly true that if you can generate texture in response to page faults, you have an opportunity to do something a little clever there if you're procedural. And for disk streaming, you might be able to use the page faulting to retry with a different mip-level and flag that a given page needs to be swapped in.

But I think that's more interesting if you have < 4GB of texture; SVT is interesting partially because it enables more larger than 64k x 64k texel textures. But that means you still need a >32-bit address mapping, which I assume Larrabee doesn't have (because why would it need it).

Maybe there's something clever you can do because you can write from the shader, like, when you discover you don't have the right mipmap, search up the tree for the one that's in memory, and then store that result into a cache. (My posted SVT code does stores that information in the page texture itself, but it only propogates it down a few levels to avoid needing to update e.g. 64 x 64 worth of blocks all pointing to the texture 6 levels above. A regular shader can work around that by searching up the tree for a non-empty page, but can't cache the result.)

But even though you can do that cacheing in a lock-free way (if any other thread is doing the same thing at the same time, it'll compute the exact same thing, so everyone can just write and who cares), it actually doesn't quite work (because you now need to clear that cache if a higher-res still-wrong-mipmap-level becomes available), which is back to the original problem. Maybe there's a trick here I'm not thinking of, so maybe something can be done, but it doesn't feel huge overall.
Back to top
View user's profile Visit poster's website
casey
Site Admin


Joined: 18 Dec 2004
Posts: 1768
Location: Seattle

PostPosted: Wed Aug 06, 2008 4:05 pm    Post subject: Reply with quote

sean wrote:
But I think that's more interesting if you have < 4GB of texture; SVT is interesting partially because it enables more larger than 64k x 64k texel textures. But that means you still need a >32-bit address mapping, which I assume Larrabee doesn't have (because why would it need it).


Since I seem to recall him being very interested in this, I assume this has to be something Tom thought about when they were doing the design. I'll have to ask him about it. It may be something like "well it is prohibitively expensive to do something that helps this out", but I'd be surprised if it wasn't something they were thinking about.

- Casey
Back to top
View user's profile Send e-mail Visit poster's website
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Wed Aug 06, 2008 4:12 pm    Post subject: Reply with quote

Also, I find it interesting that Intel is publishing this paper at all... as far as I know ATI and NVIDIA haven't been publishing equivalent papers about how GPUs work, have they?

I know there's been a lot of work reverse-engineering and reading patents to figure out what they do, though. Actually I was a little surprised to see the constant references in the paper to what they do, since I wasn't sure there was any public information Intel could reliably cite.
Back to top
View user's profile Visit poster's website
casey
Site Admin


Joined: 18 Dec 2004
Posts: 1768
Location: Seattle

PostPosted: Wed Aug 06, 2008 5:43 pm    Post subject: Reply with quote

sean wrote:
Also, I find it interesting that Intel is publishing this paper at all... as far as I know ATI and NVIDIA haven't been publishing equivalent papers about how GPUs work, have they?

Part of that might be the RAD coolness. Or, part of it might be the fact that Intel knows either this thing comes to fruition and nVidia is out of business, or it doesn't and it doesn't matter... Smile

- Casey
Back to top
View user's profile Send e-mail Visit poster's website
Won



Joined: 21 Sep 2005
Posts: 506
Location: New York

PostPosted: Wed Aug 06, 2008 6:22 pm    Post subject: Reply with quote

ryg wrote:
Stop it, you two, you're giving me a headache!


LOL, that was supposed to amuse you, not give you a headache. You are obviously way ahead of the curve in this respect.

@sean

I was assuming the opposite, that Larrabee did have 64-bit addressing, since it is a 64-bit Pentium. My hope for why they published this stuff was so that they would open it up, which would really be nice. Anyway, it seems to me that Larrabee is about something bigger than just graphics, and it is really a prelude to the "manycore" future.
Back to top
View user's profile Visit poster's website
jeffatrad



Joined: 24 Feb 2008
Posts: 126

PostPosted: Wed Aug 06, 2008 10:26 pm    Post subject: Reply with quote

Obviously, there is a ton that I'd like to say about Larrabee, but I can't. I will say that it's going to be awesome, though, and I think it will change lots of stuff.

->Jeff
Back to top
View user's profile
Zaphos



Joined: 24 Feb 2007
Posts: 90

PostPosted: Thu Aug 07, 2008 12:24 am    Post subject: Reply with quote

I imagine the Stanford people on the paper would also have pushed for publishing the results. Also, it's probably helpful to Intel if they can get the research community thinking about new things that can be done with The Unique Power of Larrabee ...

Quote:
Anyway, it seems to me that Larrabee is about something bigger than just graphics, and it is really a prelude to the "manycore" future.

I agree!


Last edited by Zaphos on Sat Aug 09, 2008 6:36 pm; edited 1 time in total
Back to top
View user's profile
Zaphos



Joined: 24 Feb 2007
Posts: 90

PostPosted: Thu Aug 07, 2008 1:12 am    Post subject: Reply with quote

Also -- thank you for the link, Won!

And, does anyone know if this exists yet (from the paper's references):

BADER, A., CHHUGANI, J., DUBEY, P., JUNKINS, S., MORRISON T.,
RAGOZIN, D., SMELYANSKIY. 2008. Game Physics Performance
On Larrabee Architecture. Intel whitepaper, available in
August, 2008. Web site: techresearch.intel.com.

... I know there's a link right there, but I can't find anything on that site. *cry*
Back to top
View user's profile
TomF



Joined: 18 Feb 2007
Posts: 107
Location: Seattle

PostPosted: Thu Aug 07, 2008 8:24 am    Post subject: Reply with quote

Quote:
I wonder how closely Larrabee resembles a Pentium. Is there memory protection? Rings? Segmentation?

It's uncannily similar to a Pentium with the 64-bit extensions and a really big vector unit bolted onto it. So yes, you get all that good virtual memory stuff and the four rings and so on. I wouldn't really describe segmentation as a "good" thing, but yes it's there.

Quote:
So I think you'd have to implement SVT exactly the same as you do on every other GPU.

You shouldn't have to do any of that. Won got it right - if the texture unit hits one or more page faults when fetching texels, it will simply tell the calling routine the addresses that faulted. You can either then just cause a standard OS page fault on those and let the demand-page system do its stuff, or do something smarter to make those pages exist, i.e. commit physical memory to them and fill them with interesting data yourself. Then you resubmit the texture sample request, and it all magically works. All the filtering modes work properly - no ugly fudges needed. The texture units share the x86 page tables - they're all in the same virtual address space.

The thing that's going to annoy Sean is that we're still limited to float32 texel coordinates, so you can't go completely nuts. Larrabee is a full 64-bit system, including the texture units, so you do have more than 4Gb of virtual address space - the problem is that float32s start to run out of precision at the larger texture sizes, so you still have to deal with borders between textures in some places.

Of course, as you approach them you'll also start to get bad camera shakes, your physics and animation will start to fall to pieces, etc. Smile So the texture seams are only a small part of the problem. As everyone knows, you should not be using floating-point numbers for world positions! <insert rant here>
Back to top
View user's profile Visit poster's website
Display posts from previous:   
Post new topic Reply to topic    Molly Rocket Forum Index -> Sparse Virtual Texturing All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Molly Rocket topic RSS feed 
Molly Rocket topic RSS feed 
Molly Rocket topic RSS feed, first posts only 


Powered by phpBB © 2001, 2005 phpBB Group