Jump to content

Hi all!

 

First, a little background.

I work in a software company as a software engineer, and in my department we have a monthly enrichment lecture by someone in the department.

So, one day I had a conversation with the guy that organizes the lectures about how slow our computers are and I started to talk about how processing work, GPUs and CPUs, etc...

One thing led to another and I volunteered to give the next lecture about the subject of computer processing.

 

The thing is, while I do know a small bit about the subject of processing, I'm not entirely sure how to organize the lecture. Where to start, where to finish, and most importantly what to cover in 90 minutes.

This is where I ask you nice fellows of this forum for a hand. I would like to hear your suggestions regarding the topics I should talk about, interesting points I should mention and to provide data sources so I can fact check what I'm saying (I will obviously search for data sources myself, but if you know any specifically good ones, it would be great).

Here is a list of topics I thought should be included in the lecture: (Please forgive me if some of the things I mention below are inaccurate, I still need to learn about some those stuff)

  • How basic processing works
    • CPU  frequency and cycle, what a cycle includes
    • Memory (RAM to Cache to Registers to ALU)
    • Instructions set (RISC, CISC, and whatever modern architecture used today)
  • Modern processing technologies
    • Multiple cores on one unit
    • SMT
    • Multi-layer cache (not entirely sure how modern this topic is)
  • Types of processing
    • Different types of CPUs (Intels K, normal, U and Y are a great example for the different processor types)
    • The main difference between a CPU, GPU and any other processor type I am not aware of...
    • Different cores within 'one' processor (An Nvidia GPU would be a great example for the different processing types of tensor, RT and cuda cores)
  • Current state
    • Overview of the CPU market (EPYC/Xeon, Threadripper/Intel's XE series, Core i#/Ryzen R# and some fresh news about why Zen 2 is a big deal)
    • Overview of the GPU market (Nvidia with Pascal and Turing, AMD with Polaris and Navi, Intel with what we know on their attempt at a GPU with multiple chips)
    • Promising future advancements in processing (Are there any? I'm not aware of anything specific...)

Thanks for any who helps!

Link to comment
https://linustechtips.com/topic/1067811-need-to-give-a-lecture-about-processing/
Share on other sites

Link to post
Share on other sites

Keep the theory and technical terms on the low... don't get into registers, cache memory, fine details, you won't have time to compress everything in 90 minutes.


I'd suggest making it about efficiency, how performance increases over time while power consumption goes down... pointing out CISC vs RISC because that's relevant as in x86 (desktop, servers) vs arm (phones, tablets, some laptops), explain why frequency isn't everything as some operations require more cycles compared to others, so a processor may complete less tasks in a unit of time compared to another running at same frequency

Explain why we don't see huge increases in frequency but we see more and more cores (because process shrinking is more and more expensive and more difficult, because it's easier to add cores in the space freed due to die shrinks due to smaller manufacturing process, because it's possible to create multiple skus by artificially disabling cores or reselling dies with faulty cores as processors with fewer cores

Yeah, you could explain differences in manufacturing quality (some dies end up better quality compared to other dies on same wafer), which could be one factor of binning which results in series like the intel ones which are ultra low voltage (best binned), slightly better and standard...

Could say about some dies having one or several cores which are more power hungry compared to the others, so they may be disabled resulting in perfectly fine processor with fewer cores...

You could also squeeze there about differences between gpu processors and regular processors , how gpus are optimized to have lots of tiny more basic cores that do stuff in parallel rendering frames, how they're traditionally more optimized for integer math but more and more they also do floating point with the addition of Cuda and OpenCL allowing calculations to be done on video card...

 

Link to post
Share on other sites

27 minutes ago, Heflo said:

Different types of CPUs (Intels K, normal, U and Y are a great example for the different processor types)

they are all the same CPU.......... just with different power budgets. 

 

27 minutes ago, Heflo said:

Intel with what we know on their attempt at a GPU with multiple chips

we know nothing except they will probably try having an active substrate or stacking chips on top of eachother. 

27 minutes ago, Heflo said:

Promising future advancements in processing (Are there any? I'm not aware of anything specific...)

Raytracing ASICs. being able to create photorealistic images in games in realtime. 

 

edit: 

http://jonathan-olson.com/tesserace/tests/3d.html

http://madebyevan.com/webgl-path-tracing/

some short and easy to run Raytracing demos. 

 

 

 

i would perhaps lecture them about APIs such as Cuda, OpenCL, OpenGL, dx12, Vulkan etc. and the importance of having the right tools for the job. 

 

1 piece of hardware might be on paper amazing, but gets crushed by much inferior hardware in certain workloads. 

Link to post
Share on other sites

Talk about things like the evolution of CPU architecture (For example Zen 2's chiplet design), the move from the push for higher clock speeds to higher core counts, Microsoft's DXR API, etc. I think it's best to give the sort of perspective of somebody who's into hardware, not necessarily computers science. In my mind, there's no need to get into ALUs and low-level architecture, as it's simply not relevant to the vast, vast majority of people. Nobody really needs to know their ripple carry from carry-lookahead. And also, consider the fact that you're at a software company. Talk about how the different advantages of various processors affect performance in various applications, and how a developer might be able to optimize for that or make choices based on it. I mean, I'm no software expert so I can't give you much of a rundown on just how to go about that, but you get the idea.

"uhhhhhhhhhh yeah id go with the 2600 its a good value for the money"

Link to post
Share on other sites

Who's your target audience? That will let us know how to shape your presentation so you're not, for example, saying something to advanced for people who think setting the time on a microwave is too complicated.

 

Although the only thing I have to say for certain is don't include the last part about current state. Unless you have a team bidding for new equipment, this information isn't really helpful to anyone. Besides that, there's way more to processors than what you can get on a desktop PC. I used to work on embedded systems and the processors I dealt while I'm sure few "computer enthusiasts" have ever heard of.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×