Attila Project

From AttilaWiki

Jump to:navigation, search
TarjetasGraficasIntro.jpg

The Attila Project goal is to research and develop high performance microarchitectures for the next generation of GPUs. To this end, the team has started by exploring the performance of the current generation (R580, G70, G80) of rasterization-based GPUs. So far we've produced a full GPU (soft) stack: an OpenGL driver, an Attila driver, and a cycle-accurate simulator of the first incarnation of the Attila architecture. Additionally, the team has produced helper tools to capture open GL traces, play the captured traces and a WaveForm visualizer for the Attila simulator.

We are currently working on a DX9 driver, which will share many components with the OpenGL driver. To this end, we're layering the existing OGL driver into a lower common layer that will support both the DX9 and OGL specific layers.

Take me to the Snapshots!

The Attila stack can run a number of OpenGL games and Direct3D9 games on top of the Attila Simulator. We dump the contents of the frame buffer produced by the Attila GPU at the end of each frame and turn them into short videos. The Snapshots are here.

Current Research Topics

Victor Moya is looking for a reason to start writing his PhD dissertation after 'wasting' a couple of years working on certain 'uninteresting' project at Intel. He has been lately helping Albert and Vicente to fix bugs in the new drivers, add or fix support for new features in the ATTILA architecture required to support D3D9 based games, implementing the ATTILA functional emulator to improve driver development time and other miscellaneous stuff that doesn't improve his chances of finishing a PhD. Eventually he may take another look at the general shader architecture with the purpose of filling pages in the PhD dissertation.

Carlos González has developed a detailed GDDR4 memory controller based on specs of Hynix and Micron modules. Carlos is currently looking into scheduling techniques to improve bandwidth and latency of current GPU memory controllers.

Jordi Roca has started looking into rendering micro-polygons with a classic rasterization engine and what changes would be needed to better support micro-polygons in a commercial GPU.

Albert Murciego is developing our new D3D9 driver based on the ATTILA common library layer(ACD). He has implemented support for Crysis and Call of Duty 2. He will be improving our D3D9 driver to add more D3D9 games.

Vicente Escandell is developing the ATTILA common driver layer (ACD) and the new OGL driver based on it. The new OGL driver supports Doom3, Quake4 and Prey but support for UT2004 was deprecated (due to being fixed function based, not shader based and already quite old) and Chronicles of Riddick has not been tested. Both should work with the old OGL driver until it breaks down due to lack of support :). He has implemented support for Enemy Territories: Quake Wars in the new OGL driver. Right now he is looking for new OGL games or applications (good luck on that :P) and the viability of implementing glslang support in our OGL driver.

Chema Solís implemented our early version of the D3D9 driver that was able to run Half Life 2 traces. Our new D3D9 driver based on the common driver layer (ACD) has been using some of the early D3D9 infrastructure he developed (D3D9 PIX trace player, D3D9 interface classes, shader translator).

Recent News

Subscribe to attilasim@yahoogroups.com for up to date news on attila by sending an email to attilasim-subscribe@yahoogroups.com

Twitter Account: http://twitter.com/attilasim

After a 'few' years paying (an obviously small) PhD tuition just for the fun and remaining attached to the Computer Architecture Department of the Universitat Politècnica de Catalunya · BarcelonaTech (UPC) (the 'BarcelonaTech' part seems new branding) I'm forced by law to stop paying (some legal change from some years ago that limits the time for old law PhDs to finish and I don't want to bother to start or transfer to a new law PhD that I won't likely finish). So starting next month I won't be related in any way with the university.

One consequence is that probably this site won't have anyone that tries to keep it alive. So probably this website may eventually go down without much notice and will remain that way for ever. If you want save something from this site it may be the last call.

There are two alternative repositories for the source code. But I'm not the owner of either:

https://github.com/cooperyuan/attila

https://github.com/attila-gpu/attila-sim

In the future I can be contacted through this mail account: victor.moya.del.barrio@gmail.com

Thanks

We have moved the ATTILA website to a new server so we hope the repeated downtimes we have been suffering lately won't happen anymore.

If you find any link not working or missing download files please send us a mail so we can fix it.


We have released a new version of our GPU simulator. You can find it here or look in the Downloads section. Check the Documentation section for updated information about the ATTILA simulator. Find D3D9 single frame PIX traces in the Traces section.

The new release includes all the improvements to the simulator and the API framework we developed since 2006:

After I wrote the ATTILA emulator, which is quite faster than the emulator though I think still slower than RefRast :), and we used it to developed the new D3D9 library it became clear that the best approach to debug the simulator, still as slow or slower than usual, was to use the emulator as a reference. The functional part, the code that creates the image, is the same, it only changes the control and timing logic. So I implemented a special version of the simulator that would integrate the emulator and the simulator and would compare outputs (vertices and pixels) from the emulator against outputs from the simulator after every draw call. But then I joined back Intel full-time around March/April and this new tool wasn't complete, I was just starting to test it. I have spent some time the last three weeks debugging the emulator->simulator validation tool and then debugging bugs in the different D3D9 traces. Here are the results (you can compare against the old screenshots from the simulator here). Some look a bit better than some of the old emulator screenshots, Need For Speed Underground looks different but still with some problems. I have updated the Snapshots page with all the D3D9 frames we are currently testing and work in the simulator.

Crysis
COD 2
UT3
GRID
L4D
Wolfenstein
Mirror's Edge
Crysis Warhead
Need For Speed Underground
Burnout


I captured a frame from StarCraft II. After a single fix related with incorrectly setting the viewport that's what we get in the ATTILA emulator. Still some issues, missing shadows and that white thing spreading around the HUD panels, to fix if I ever have the time.

Image obtained with the Attila emulator




Crysis
COD 2
UT3
GRID
L4D
Wolfenstein
Mirror's Edge
Crysis Warhead
Need For Speed Underground
Burnout
S.T.A.L.K.E.R.
Image obtained with the Attila emulator


Finally! A new OpenGL game working and using our new OpenGL implementation! Megatextures for ATTILA!!!

The D3D9 library is also progressing. One shot from Call of Duty 2.

Expect more soon.
Diving from the sky
Crysis with the new Direct3D driver (not the final render)
HL2: Lost Coast rendered by Direct3D.
HL2: Lost Coast on Attila, 2008.04.25.


ATTILA
Toolbox