|
View previous topic :: View next topic
|
| Author |
Message |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Mon Aug 04, 2008 5:32 pm Post subject: Larrabee at SIGGRAPH |
 |
|
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 |
|
 |
NocturnDragon
Joined: 23 Jul 2008 Posts: 3
|
|
| Back to top |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Tue Aug 05, 2008 6:08 pm Post subject: |
 |
|
| 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 |
|
 |
soal
Joined: 12 Oct 2005 Posts: 29
|
| |
Posted: Wed Aug 06, 2008 2:37 am Post subject: |
 |
|
| I personally can't wait until games are released that run entirely on larrabee. It'd be a sweet demoscene! |
|
| Back to top |
|
 |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Wed Aug 06, 2008 5:10 am Post subject: |
 |
|
| 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 |
|
 |
ryg
Joined: 31 May 2007 Posts: 276 Location: Kirkland, WA
|
| |
Posted: Wed Aug 06, 2008 10:40 am Post subject: |
 |
|
| 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 |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Wed Aug 06, 2008 2:54 pm Post subject: |
 |
|
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 |
|
 |
casey Site Admin
Joined: 18 Dec 2004 Posts: 1768 Location: Seattle
|
| |
Posted: Wed Aug 06, 2008 4:05 pm Post subject: |
 |
|
| 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 |
|
 |
sean
Joined: 01 Feb 2005 Posts: 1392 Location: Kirkland WA
|
| |
Posted: Wed Aug 06, 2008 4:12 pm Post subject: |
 |
|
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 |
|
 |
casey Site Admin
Joined: 18 Dec 2004 Posts: 1768 Location: Seattle
|
| |
Posted: Wed Aug 06, 2008 5:43 pm Post subject: |
 |
|
| 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...
- Casey |
|
| Back to top |
|
 |
Won
Joined: 21 Sep 2005 Posts: 506 Location: New York
|
| |
Posted: Wed Aug 06, 2008 6:22 pm Post subject: |
 |
|
| 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 |
|
 |
jeffatrad
Joined: 24 Feb 2008 Posts: 126
|
| |
Posted: Wed Aug 06, 2008 10:26 pm Post subject: |
 |
|
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 |
|
 |
Zaphos
Joined: 24 Feb 2007 Posts: 90
|
| |
Posted: Thu Aug 07, 2008 12:24 am Post subject: |
 |
|
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 |
|
 |
Zaphos
Joined: 24 Feb 2007 Posts: 90
|
| |
Posted: Thu Aug 07, 2008 1:12 am Post subject: |
 |
|
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 |
|
 |
TomF
Joined: 18 Feb 2007 Posts: 107 Location: Seattle
|
| |
Posted: Thu Aug 07, 2008 8:24 am Post subject: |
 |
|
| 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. 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 |
|
 |
|
|
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
|
|