You are on page 1of 15

PRACTICAL ASSIGNMENT – 1

GTGPU
AIM:
To Study about the basic elements, history and the issues and challneges involved in Graphics and GPU

Definition:
Graphics cards, also known as video cards or display adapters, are essential components in modern
computing systems, responsible for rendering images, videos, and animations on a computer screen.
Over the years, graphics cards have evolved significantly, driven by the increasing demand for high-
quality graphics in video games, professional applications, and multimedia content.

Their massive parallel processing capabilities and high-performance computing power enable
researchers and developers to train complex neural networks and process large volumes of data more
efficiently than traditional CPUs. As a result, GPUs have accelerated the development and deployment of
AI applications across various industries, including healthcare, finance, automotive, and entertainment.
Companies like Nvidia, AMD, and Intel continue to innovate and develop GPU architectures specifically
designed for AI workloads, further driving advancements in AI research and the adoption of AI
technologies in the industry.

History and Evolution of Graphic Cards:


Early days(1960-1980)
The history of graphics cards dates back to the 1960s when computer systems started using specialized
hardware for graphics processing. Early graphics systems were primarily used for scientific and
engineering applications, and they were often large, expensive, and limited in their capabilities.

In the 1970s, the development of microprocessors and integrated circuits led to the creation of more
affordable and compact graphics systems. One of the first commercially available graphics cards was the
IBM Monochrome Display Adapter (MDA), introduced in 1981. The MDA was designed for use with the
IBM Personal Computer and provided basic text-only display capabilities.

The introduction of the IBM Color Graphics Adapter (CGA) in 1981 marked a significant milestone in the
evolution of graphics cards. The CGA allowed for color display and limited graphics capabilities, making it
suitable for early computer games and multimedia applications.

In 1984, IBM introduced the Enhanced Graphics Adapter (EGA), which offered improved color depth and
resolution compared to the CGA. The EGA was followed by the Video Graphics Array (VGA) in 1987,
which became the industry standard for many years. The VGA provided 256 colors and a resolution of
640x480 pixels, enabling more detailed graphics and richer colors.
The Rise of 3D Graphics (1990s)
The 1990s saw significant advancements in graphics technology, driven by the growing popularity of
video games and the increasing demand for realistic 3D graphics. In 1992, S3 Graphics introduced the S3
86C911, one of the first graphics accelerators capable of handling both 2D and 3D graphics. This marked
the beginning of the era of dedicated graphics processing units (GPUs).

In 1995, Nvidia was founded and quickly became a major player in the graphics card industry. Their first
product, the NV1, was released in 1995 and featured integrated 2D and 3D graphics capabilities, as well
as support for Sega Saturn game controllers.

Meanwhile, ATI Technologies (later acquired by AMD) introduced the ATI Rage series in 1995, which
offered 2D and 3D acceleration and video decoding capabilities. The ATI Rage series was followed by the
Radeon series, which became ATI’s flagship GPU lineup.

In 1999, Nvidia released the GeForce 256, the first GPU to be marketed as a “GPU” rather than a graphics
accelerator. The GeForce 256 featured hardware transform and lighting (T&L) capabilities, which
offloaded complex 3D calculations from the CPU to the GPU, resulting in significant performance
improvements.

The GPU Wars: Nvidia vs. AMD (2000s)


The 2000s were marked by intense competition between Nvidia and AMD (which acquired ATI
Technologies in 2006) in the GPU market. Both companies released a series of increasingly powerful and
feature-rich GPUs, pushing the boundaries of graphics technology and enabling more realistic and
immersive gaming experiences.

In 2001, Nvidia introduced the GeForce 3 series, which featured programmable vertex and pixel shaders,
allowing developers to create more complex and realistic graphics effects. The GeForce 3 series was
followed by the GeForce 4 series in 2002, which offered improved performance and additional features,
such as multiple monitor support.

AMD, on the other hand, released the Radeon 9700 Pro in 2002, which was the first GPU to support
DirectX 9, a major update to Microsoft’s graphics API. The Radeon 9700 Pro featured advanced pixel and
vertex shaders, as well as support for high dynamic range (HDR) rendering, which allowed for more
realistic lighting and color effects.

Throughout the 2000s, Nvidia and AMD continued to release new GPU architectures and technologies,
such as:

• Nvidia’s GeForce 6 series (2004), which introduced the first GPUs to support Shader Model 3.0
and high dynamic range (HDR) rendering.

• AMD’s Radeon X1000 series (2005), which featured improved performance, Shader Model 3.0
support, and advanced video decoding capabilities.
• Nvidia’s GeForce 8 series (2006), which introduced the first GPUs to support DirectX 10 and
unified shader architecture, allowing for more efficient and flexible graphics processing.

• AMD’s Radeon HD 2000 series (2007), which introduced the first GPUs to support DirectX 10.1
and featured improved performance and power efficiency.

The Rise of General-Purpose GPU Computing (2010s)


In the 2010s, GPUs began to be used for more than just graphics processing, as researchers and
developers started to harness their massive parallel processing capabilities for general-purpose
computing tasks. This led to the development of GPU-accelerated applications in fields such as scientific
simulation, machine learning, and data analytics.

In 2006, Nvidia introduced CUDA, a parallel computing platform and programming model that allowed
developers to write code in C, C++, or Fortran and use CUDA-specific extensions to express parallelism
and manage GPU resources. CUDA quickly gained popularity and became a key technology in the field of
general-purpose GPU computing.

AMD responded with the introduction of the ATI Stream technology (later renamed AMD APP
Acceleration) in 2007, which allowed developers to use GPUs for general-purpose computing tasks using
the OpenCL programming model.

In 2012, Nvidia released the Kepler architecture, which featured improved performance, power
efficiency, and support for GPU computing features, such as dynamic parallelism and Hyper-Q. The
Kepler architecture was followed by the Maxwell (2014), Pascal (2016), and Turing (2018) architectures,
each offering significant improvements in performance, power efficiency, and GPU computing
capabilities.

AMD, on the other hand, introduced the Graphics Core Next (GCN) architecture in 2011, which featured
improved performance, power efficiency, and support for GPU computing features, such as
asynchronous compute and hardware-based H.264 video encoding. The GCN architecture was followed
by the RDNA (2019) and RDNA 2 (2020) architectures, which offered further improvements in
performance and power efficiency.

Latest retail GPUs available in market as of Sept, 2023

1. Intel ARC A770 GPU

2. AMD Radeon RX 7900 XTX GPU

3. Nvidia Geforce RTX 4090 GPU


Issues and Challenges of GPU:
Scalibility
• We know the uses and benefits of using GPUs, but there are few concerns which will have to be
addressed for their extensive use. One of them is scalability.

• This problem of scalability is usually arises from the inherent design of GPUs due to issues like
communication bottlenecks between cores and limited memory capacity. There is need to
increase in number of cores if the performance is to increase, more number of cores means, the
communication required between them also increases which leads to communication
bottlenecks.

• How is this challenge faced? With careful optimisation and proper design these bottlenecks can
be can be somewhat subsided.

Security
• GPUs face security challenges like Vulnerabilities to side-channel attacks, buffer overflow attacks,
malware attacks etc, Compatibility issues which inturn leads to security vulnerabilities, stability
issues etc and Data Leakage especially when GPUs are used for machine learning or large data
processing tasks.

• Few of the examples where there were security issues are 1. ISCA’21, CCS’18 2. MICRO’17 (UCR)
3. Oakland’21 (UVA).

Reliability

• GPUs face reliability challenges like Overheating which can reduce lifespan of the device and

cause stability crashes, Power Supply can lead to similar problems, Manufacturing Quality

which can impact reliability.

• Few of the expamples where there were major reliability issues are 1. MICRO’21, SC’20 2.

(NIVIDIA); HPCA’19 (AMD).

Timing Attack Model:


• It’s a type of side-channel attack on GPUs in which an attacker attempts to gain sensitive
information by observing analyzing the timing of a cryptographic operation.

• Goal: recover AES encryption key. Assumption: attacker can remotely access the encrption
server, which stores the encryption key.

• Method: Attacker will send plaintexts to the server for encryption and times the execution time.
Then attacker receives the ciphertext. The attacker reapeats the process to collect multiple
ciphertexts and related execution times.

• The last round of attack: Attacker does the same things for this attack also. This execution time
corresponds to the real key byte value, which attacker is unaware of. Then attacker performs an
invert table lookup who then plugs in a guess byte value to deduce the memory addresses
generated. The attack assumes that the attacker is aware of the memory layout.

• With all the information available, attacker can now find the number of coalesced accesses
corresponding to the guess key byte.

• Final step: Attacker exploits the relationship between # of accesses and the execution time, this
can be done by corellating # oof coalesced accesses with observed execution time. This is
Determinstic behaviour of coalescing.

Hardware For Graphics:


Computer
A computer is the most critical piece of hardware for any graphic designer. It is the backbone of your
work & should be chosen carefully to meet your specific needs. Whether you prefer a desktop or a
laptop, the most important factor is the processing power, memory & storage space.

A-High Quality Monitor


A high-quality monitor is a must-have for any passionate graphic designer. It should have a high-
resolution & also accurate color representation. This will allow you to see your work in the highest
quality possible, allowing you to make precise color adjustments & edits. Consider purchasing a monitor
with at least 1920 x 1080 resolution & a color gamut of at least 100% sRGB.

A Graphics Tablet
A graphic tablet also known as a digitizing tablet or a pen tablet, is a very important tool for graphic
designers. It allows you to work with a stylus, similar to a pen or pencil, on a surface that corresponds to
the screen.

This allows for more precise & natural control when working on illustrations, photo retouching, or other
design tasks. Consider purchasing a graphics tablet from a well-known brand, such as Wacom, with a
large active area & customizable buttons for maximum efficiency.
A Scanner
A scanneris a crucial tool for graphic designers who need to digitize physical artwork, photographs, or
other elements for their designs. It should have a high resolution & color accuracy, enabling you to
capture every detail of your artwork. A Scanner with a high DPI (dots per inch) & a color depth of at least
48 bits can be used.

Printer
A Printer is an important tool for graphic designers, allowing them to print out their work & make
physical copies for clients or presentations. You can purchase a high-quality inkjet or laser printer with a
high resolution, fast print speed & a large color gamut.

An External Hard Drive


An external hard drive can be used for backing up your work & storing large files. Consider buying an
external hard drive with a large capacity & fast transfer speed. This will ensure that your work is safe &
easily accessible, even if your computer crashes.

Headphone
While not strictly a hardware tool, hashtag#headphones are an important accessory for graphic
designers. They allow you to work in peace & concentration, without the distractions of background
noise. Prefer a high-quality headphone with noise-canceling technology & a comfortable fit.

Software for Graphics:

Adobe Creative Suite is undoubtedly the most comprehensive graphic design software available today.
This powerhouse package includes photoshop, illustrator, InDesign, & more, allowing you to tackle a
wide range of design projects with ease.

Photoshop is a must-have tool for photo editing, retouching & manipulation, while Illustrator is the go-
to tool for vector graphics & typography. InDesign, on the other hand, is the ultimate layout design tool,
perfect for creating print & digital projects.

Core l-DRAW

CorelDRAW is a powerful graphic design software that is exclusively designed for Windows users. It’s a
versatile tool that offers features similar to those of Adobe Illustrator, making it a great alternative for
designers who don’t want to use Adobe products.
With coreldraw, you can create vectorgraphics, illustrations, logos & more with ease. It’s also equipped
with advanced tools that allow you to create intricate designs, making it a great option for professional
graphic designers.

Sketch

‘Sketch’ is an amazing vector graphics editor for macOS designed by the Dutch company Sketch B.V. It
won an Apple Design Award in 2012 & was released on 7 September 2010. This is an easy-to-use design
tool that is specifically designed for web & mobile design. Its clean and simple interface makes it easy to
use. With Sketch, you can create wireframes, prototypes & high-fidelity designs very easily.

Affinity Designer

Affinity Designer is a designing & ux solution that helps businesses create logos, concept art, UI designs,
icons, print projects & mock-ups, among other illustrations. It is a professional-grade design software
that offers a cheaper alternative to adobe Illustrator.

With its powerful features & user-friendly interface, Affinity Designer is the perfect tool for professional
graphic designers. It’s packed with advanced features that allow you to create complex designs easily.

Canva

Canva is a popular graphic design tool that is perfect for non-designers. With its drag & drop interface &
pre-made templates, Canva makes it easy for anyone to create great designs without any experience.

Whether you’re creating social media posts, flyers, or presentations, Canva has everything you
need. It’s a great tool for small businesses, bloggers & anyone who needs to create graphics on a
budget.

Basic Elements of Graphic Design:

Line

Described as the building blocks of design, lines can be continuous or broken, straight or curved, smooth
or zigzagged and beyond, and are used for more than just outlines or dividing up content. For example,
they can convey movement or tie together your composition.

Shape

You’ll often use lines to create your own shapes. They can be geometric (usually drawn with computers
or rulers) or organic (usually found in nature and drawn freehand). When you’re making your own
shapes or designing a logo, don’t forget to lean on your software to make sure the elements are
properly aligned and symmetrical.

Form

Making your shape three dimensional gives it form, which is another essential element of graphic
design. Just like shape, you can have organic or geometric forms and these create very different
impacts—geometric forms tend to convey order and can seem sterile, while organic forms feel more
natural.

Texture

The surface quality of your designs is called texture, and it can bring another dimension to your piece.
There are many ways to go about adding texture in graphic design, from making your own brushes to
give texture to lines, to drawing your own patterns, using opacity masks to add grain textures or
blending colors. Just be aware that adding texture to illustrations often needs a lot of computer power,
so you need to have access to the right tools.

Space

You’ll need to think about both positive space (the focus of the design) and negative space (the
background) while creating your assets. You can be really creative with this: it’s possible to use positive
space in a way that recedes as your eyes track down the design, or to draw the eye towards a shape in
the background with negative space.

Imagery

If an image is worth a thousand words, knowing how to use them wisely will let you deliver the message
in a more effective way. Your first step is to decide whether you want to bring a touch of reality with a
photograph, use an illustration to visualize key information, or add icons to help viewers digest the
message.

For a cohesive design, choose images that are contextually relevant, convey the right message and tone,
and look authentic. That means steering clear from overly posed stock photography, low resolution
images and anything that is too hard to understand in the context of your design.

When you’ve selected your image, there are a few ways you can manipulate it:

o You can transform its impact by cropping it. A close crop can give a more abstract feel, or play
with the sense of intimacy, for example.
o It’s possible to play with the framing and positioning of your image. If you use a border to host
your image, it’ll make it feel like a separate object within the design—but if you use a full bleed
to extend an image all the way to the margins, it’ll seem more immersive and immediate.
o You could also edit the coloring of the photo so it aligns with the tone and color scheme of other
graphic design elements.

Typography
Many designs include some kind of copy on them, which means typography is another basic element of
graphic design that you need to understand. It can be a challenge to get the balance between setting the
tone with a stylised font and using something that everyone can digest.

When it comes to picking fonts, headers will usually call for a display typeface. These draw the most
focus but are distracting and hard to read if used for blocks of text. This means that you should do the
opposite for body copy and stick to serif or sans serif fonts, since they’re easier to comprehend.

Whichever typeface you choose, make sure there are variations in a range of sizes, weights and
thicknesses. If you want to use small caps, for example, make sure the font offers this variation instead
of committing the typography crime of simply reducing the size.

If you want to mix fonts, some experts warn you should stick to just two or three different styles, while
others think you can be bolder with the range of types you use. The secret to mastering typography for
graphic designers is to choose fonts with a shared characteristic to avoid your work looking confused.

Color

You might think your options are infinite when it comes to choosing a color palette, but a key element of
graphic design is understanding the color wheel and how to find the right shades with it. When selecting
your color palette, you could go for complementary colors, triad colors or monochromatic shades, and
try to stick to cool or warm colors instead of choosing a mix of the two.

Learning the graphic design theory of color and contrast is a worthwhile investment of time if you want
to work with some bespoke palettes, but if you’re a beginner you may prefer to get the tools to do the
hard work for you. Color Hunt has a lot of presets for you to choose from, with hex codes you can copy
and paste into your design software. Alternatively, Coolers will generate color schemes until you find a
shade you like, lock it, and keep generating options until you find the perfect combination.
1. Write a C program to draw a line using library and functions of Graphics?

CODE:

#include<stdio.h>

#include<conio.h>

#include<graphics.h>

void main()

int gdriver=DETECT,gmode;

int x1=200,y1=200;

int x2=300,y2=300;

clrscr();

initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");

line(x1,y1,x2,y2);

getch();

closegraph();

OUPUT:-
2. Write a Program to draw a Circle using library and function of graphics?

CODE:

#include<stdio.h>

#include<conio.h>

#include<graphics.h>

void main()

int gdriver=DETECT,gmode;

int x1=200,y1=200;

int r=21;

clrscr();

initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");

line(x1,y1,r);
getch();

closegraph();

OUTPUT:-

3. Write a Program to draw a Car using library and function of graphics?

#include<stdio.h>

#include<conio.h>

#include<graphics.h>

int main()

int gd = DETECT, gm;


clrscr();

initgraph(&gd, &gm,”C:\\turboc3\\bgi”);

line(0,300,640,300);

setcolor(4);

circle(100,285,15);

circle(200,285,15);

circle(100,285,5);

circle(200,285,5);

line(65,285,85,285);

line(115,285,185,285);

line(215,285,235,285);

line(65,285,65,260);

line(235,285,235,260);

line(65,260,100,255);

line(235,260,200,255);

line(100,255,115,235);

line(200,255,185,235);

line(115,235,185,235);
line(106,255,118,238);

line(118,238,118,255);

line(106,255,118,255);

line(194,255,182,238);

line(182,238,182,255);

line(194,255,182,255);

line(121,238,121,255);

line(121,238,148,238);

line(121,255,148,255);

line(148,255,148,238);

line(179,238,179,255);

line(179,238,152,238);

line(179,255,152,255);

line(152,255,152,238);

setcolor(4);

getch();

closegraph();

return 0;

}
OUTPUT:

You might also like