Slide 1
Graphics Hardware and Software using Linux
Ray Gasser, [email protected]
Graphics Programmer/Analyst
Scientific Computing and Visualization Group
Boston University
Slide 2
IntroductionAgenda
– Why Linux/Intel?– Hardware
• Video Cards• Processors• I/O and Memory
– Software• System (OS, X, drivers)• Graphics APIs and Libraries• Development environments
– Resources– Issues– Future – Conclusions
Slide 3
Why Linux/Intel? SGI InfiniteReality3
210 million polygons per second 896 megapixels /sec pixel fill rate per pipe (up to 7.2 gigapixels) 1-16 graphic pipelines per system 24-bit floating-point Z buffer 48-bit RGBA color AA 8X (multisampling) 1-8 channels per pipe 256MB texture memory per pipe (up to 1 GB texture memory) 80MB - 320MB frame buffer per pipe 11.2GB/sec - 716GB/sec system bandwidth MSRP $119,000.00 entry level (includes Onyx 300)
http://www.sgi.com/visualization/onyx/3000/ir3
Slide 4
Why Linux/Intel?ATI Radeon 9700 - latest consumer video card (linux drivers to
come) 300 million triangles per second 2.6 gigapixel /sec fill rate (textured, AA, Z) 1 128-bit floating point graphics pipeline 24-bit floating-point Z buffer 128-bit fp RGBA color AA 2X/4X/6X (multisampling and supersampling) 2 channels (1 VGA, 1 DVI) 128MB quad channel DDR SDRAM frame buffer 2.1GB/sec system bandwidth AGP 3.0 bus (2x/4x/8x) MSRP $399.00 (you have to supply the PC)
http://www.ati.com/products/pc/radeon9700/index.htmlhttp://www.anandtech.com/video/showdoc.html?i=1656http://www.tomshardware.com/graphic/02q3/020718
Slide 5
Why Linux/Intel?
IR3 Radeon 9700
Polygons /sec up to 210 M polys 300 M triangles
Fill rate /sec 896 M – 7.2 Gpix 2.6 Gpix
Graphic pipes 1 –16 1
Z buffer 24-bit floating pt 24-bit floating pt
Color 48-bit RGBA 128-bit RGBA
AA 8x (multisample) 6x (multi/super)
Channels 1-8 per pipe 2
Texture 256MB -1GB na
Frame buffer 80MB – 320MB 128MB – 256MB
Bandwidth /sec 11.2GB – 716GB 2.1GB
MSRP $119,000 $399 + pc
Slide 6
Why Linux/Intel?
Dave Pape's SPECglperf 3.1.2 results (Onyx2 IR vs PC)drawing display-listed, Z-buffered triangle strips, with varying triangle sizeshttp://www.evl.uic.edu/pape/papers/lowcost.spie02/node7.html
Slide 7
Why Linux/Intel?
Dave Pape's CAVE app benchmark (Onyx2 IR vs PC) http://www.evl.uic.edu/pape/papers/lowcost.spie02/node7.html
Hardware Average FrameRate
Matrox G450 31.0
Quadro2 MXR 97.0
Radeon VE 32.6
Onyx2 InfiniteReality 78.6
Slide 8
Why Linux/Intel?
• Graphics hardware cost/performance
• Intel leader in CPU cost/performance
• Open Source (large community, many projects)
• UNIX (what you are used to)
Slide 9
Hardware: Video Cards (current state)
• Game driven• Large number of manufacturers• Low cost• GPU • Hardware T&L• Hardware Z buffer• Hardware AA• Texture support• Linux drivers
Slide 10
Hardware: Video Cards (limitations)
• limited number of channels (1 AGP slot)
• limited texture memory
• fill rate
• precision* (16bit Z, 32 bit integer graphics pipe)
• quality* (16bit color depth)
• video
Radeon R300*
Slide 11
Hardware: Video Cards (consumer)
• Pros– very low cost (<$500.00)– high performance – innovative: pixel/vertex shaders, shadow buffers, 3D
textures– very fast production cycles (6 months)
• Cons– poor precision (16bit Z, 32 bit integer graphics pipe)– poor quality (16bit color depth)– poor line drawing rates– poor AA
• Examples– nVidia GeForce4 Ti– ATI Radeon 9700– Matrox Parhelia
Slide 12
Hardware: Video Cards (professional)
• Pros– good precision/quality– good line drawing rates– good AA– fully accelerated OpenGL 1.2– more memory– more hardware lights– overlay plane support– quad-buffered stereo– dual channel– application support and certification
• Cons– performance about the same as consumer cards– price 2-3x high end consumer cards– lag (1 cycle) consumer cards in feature innovations
Slide 13
Hardware: Video Cards (professional)
• Examples– nVidia Quadro4– ATI FireGL– 3DLabs Wildcat
Slide 14
Hardware: Processors• 32 bit (Intel XEON, Intel Pentium4, AMD Athlon)• 64 bit coming (Intel Itanium2, AMD Opteron)
– Pros• increased memory address space• higher precision at higher speed
– Cons• data type size increases • greater application memory requirements• performance can degrade if buses not increased • cost >10x 32bit• very new
• Cache L1, L2• Number of processors (1, 2, or 4)
– realtime applications require at least 2 processors
Slide 15
Hardware: I/O and Memory• AGP 3.0 bus
– (2x/4x/8x) – 2.1 GB/s bandwidth
• Storage– ATA/100– Ultra 160 SCSI– Ultra 320 SCSI
• System Bus– 133MHz – 400MHz
• Memory– DDR SDRAM– RDRAM (dual-channel)– Kernel supports up to 64GB of physical memory
Slide 16
Software: System (Operating System)
• Red Hat– RPM– capable installer– most apps certified for Red Hat– IBM– Itanium
• Debian– user maintained/non-commercial– very stable– advanced package management
• apt-get (Synaptic version reads RPM)• very good with dependencies
– Hewlett-Packard
Slide 17
Software: System (Operating System)
• Debian– no release schedule (packages released when ready)– often behind other distributions (no KDE 3.0, no XFree86
4.0)
• UnitedLinux– Caldera– Suse– Conectiva– TurboLinux
Slide 18
Software: System (X and OpenGL)
• X Windows XFree86 4.X– Direct Rendering Infrastructure (DRI)
• direct access to graphics hardware• first used to create fast OpenGL implementations• integrates with Mesa (open source OpenGL)
• OpenGL drivers– ATI
• Radeon* open source DRI (Weather Channel funds TG)• FireGL closed source
– nVidia• GeForce closed source unified driver• Quadro closed source unified driver
*coming end 2002
Slide 19
Software: System (X and OpenGL)
• OpenGL drivers– Matrox
• open source DRI (Precision Insight)– 3Dlabs
• 3rd party, IBM, some open source DRI
• 3rd Party– Xi Graphics http://www.xi-graphics.com– Tungsten Graphics http://www.tungstengraphics.com– Metrolink http://www.metrolink.com
Slide 20
Software: Graphic APIs and Libraries
• OpenGL (SGI SI* Open Source) v1.3– software interface to graphics hardware– low level– hardware independent– distributed either as Mesa (part of XFree86)or with video card (e.g. nVidia)
• GLX (SGI SI Open Source) – glue connecting OpenGL and X Windows– distributed with OpenGL
• GLU (SGI SI Open Source)– OpenGL Utility Library– modeling features (quadratic surfaces, NURBS, curves)
*SI Sample Implementation
Slide 21
Software: Graphic APIs and Libraries
• GLU (SGI SI Open Source)– SGI SI v1.3 GLU library replaces Mesa GLU– distributed separately from OpenGL– http://www.mesa3d.org/downloads/sgi.html
• Glut (Open Source)– OpenGL Utility Toolkit– windowing toolkit (mouse, keyboard, menus, windows)– uses callbacks– abstracts native windowing system (X and GLX)– cross platform toolkit– above Xlib and GLX– distributed separately from OpenGL– http://www.opengl.org/developers/documentation/glut/
index.html
Slide 22
Software: Graphic APIs and Libraries
• Open Inventor– OO toolkit built on top of OpenGL– standard file format– scene graphs– event model– SGI v2.1 http://oss.sgi.com/projects/inventor
• open source sample implementation– Template Graphics Software v3.1 http://www.tgs.com
• closed source • commercial product• higher performance• many enhancements (multi thread, volumetric
rendering, multipipe, collision detection, stereo, etc.)• support for clusters coming
Slide 23
Software: Graphic APIs and Libraries
• OpenGL Performer v2.5– high level API for creation of real-time visual simulations– built on top of OpenGL– high performance– closed source – commercial product
http://www.sgi.com/software/performerhttp://www.sgi.com/software/performer/mailinglist.html
Slide 24
Software: Development (compilers)
• GNU gcc 2.X• GNU gcc 3.0
– P4 optimizers– C, C++, Objective C, Java, Fortran 77
• Intel Fortran and C/C++ v6.0– Fortran 95– substantial source and object code compatibility w GNU C– supports 3.0 ABI– P4, XEON, and Itanium optimizers
• Absoft Pro Fortran v7.5– Fortran 95 and Fortran 77– P4 and AMD optimizers– graphical debugger
Slide 25
Software: Development (compilers)
• Portland Group Fortran and C/C++ v4.0– Fortran 90 and Fortran 77– P4 and AMD optimizers– graphical debugger
Slide 26
Software: Development• Debuggers
– gdb (GNU)– ldb (Intel)– valgrind (memory)– electric fence (memory)– spyGLass (OpenGL)
• Profilers– gprof– cprof– vprof
Slide 27
Software: Development• IDEs– RedHat GNUPro– Metroworks CodeWarrior– KDE Kdevelop – Borland Kylix (Delphi)– Code Forge
• Windowing Toolkits– Qt Designer– gtk+ http://developer.gnome.org/– FLTK– ICS BXpro (viewkit, RapidApp)
http://developer.kde.org/tools/index.htmlhttp://www.codeforge.comhttp://developer.gnome.orghttp://www.trolltech.comhttp://www.ics.com
Slide 28
Resources
• Linux Documentation– http://www.tldp.org– http://www.linux.org
• Open Source Repositories– http://freshmeat.net– http://sourceforge.net– http://oss.sgi.com/projects– http://www.gnu.org
Slide 29
Resources
• Graphics Resources– http://www.opengl.org– http://www.mesa3d.org– http://dri.sourceforge.net– http://www.xfree86.org– http://www.linux3d.org– http://www.sgi.com/software/software.html#linux
Slide 30
Issues with Linux
• Poor support (volunteer effort)
• Lack of commercial applications (Office, Photoshop)
• Too many cooks in the kitchen
• Dependency Hell
• Lack/delay of drivers (e.g. ATI Radeon 9700)
Slide 31
Future• OpenGL 2.0, Cg
– Programmability• vertex processing• fragment processing• image formats
– multipass algorithms– flexible frame buffer config– offscreen rendering– control of texture memory
• Microsoft– DirectX 9– targeting Linux– owns much SGI's 3D patents
Slide 32
Future
• "Microsoft senior vice president Craig Mundie gave a speech at New York University in which Microsoft officially declared war on Linux.“
• "Silicon Graphics Inc has transferred much of its 3D graphics patents portfolio to Microsoft... sources close to the Mountain View are emphatic that these represent the bulk of SGI's 3D intellectual property assets, a view confirmed by documents disclosed to The Register. "
http://www.theregister.co.uk/content/54/23708.html
Slide 33
Conclusions
Linux is a cost effective and rich environment for the development and deployment of computer graphics.
Top Related