Question Zen 6 Speculation Thread

Page 165 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

MS_AT

Senior member
Jul 15, 2024
713
1,453
96
what is my post about?
That programming languages are an imperfect tools, wielded by equally imperfect people and these people would love to have tools that require less cognitive load from them so it would be harder for them to shoot themselves in the proverbial foot?
C/C++ anymore
It's not one language... You can shoot yourself in the foot in different ways in both of them.
 

OneEng2

Senior member
Sep 19, 2022
662
903
106
The fundamental question of engineering any product is what is important to the product, and what can be given up.

C++ is the best solution when performance is a top priority.

The idea that you can't make a good C++ program because it doesn't handle memory for you is just silly. I designed the existing Ford manufacturing test system and it has been running beautifully globally for decades. I can't think of a program that is under more scrutiny than this.

And yes, I do tend to lump all language features that "do the work for you" into one bucket. I call them black boxes. The idea that you can just rely on a black box is silly. Every BIG program I have been involved with (and as you can see from my example, I have had a few) inevitably requires you to understand things at a very low level.

RUST (and other programs) that attempt to make a coder's work easier by doing things for them, take the flexibility of how to do these things away also.

Honestly, I wouldn't hire a coder that didn't know the difference between a critical section, a semaphore, and a mutex.

Same for a process or a thread (and when each is the better choice).

Many coders just want something that makes their life easier; however, making their life easier by using RUST vs C++ comes at a serious performance penalty (speed, latency, and memory required). There are certainly times when this is OK and your win in time and people outweighs the cost, it isn't true for performance critical applications.

My point was (as others was as well) it's crap like RUST that drags down systems.

[RANT]There is always some new shiny toy in software development. I have seen them come and (sometimes) go. Anyone remember SOAP? There was a time when it seemed like EVERYONE was raving about it. Same for RUST today. No one wants to make binary level interfaces .... to hard for the poor mistreated software engineers .

I see development branching out into 2 distinct fields. Embedded and low level designers (who will continue to use C and C++) and application level programmers .... who will eventually become unemployed by AI programming. This is the ultimate conclusion to making a language that does it all for you.

Lots of time spent in Figma lately. Seems like Ui/Ux design is something that people are still better at than AI . [/RANT]
 

Bigos

Member
Jun 2, 2019
192
484
136
That programming languages are an imperfect tools, wielded by equally imperfect people and these people would love to have tools that require less cognitive load from them so it would be harder for them to shoot themselves in the proverbial foot?

Yes, and with Rust you do not have to think about undefined behavior* so it reduces the load on the programmers mind. And undefined behavior is the worst, as it can break unrelated code, it might corrupt data structures without crashes, etc.

That is just one nice thing. Others - like algebraic types (including Result), mutability XOR sharing - make it simpler to avoid logic bugs as well (though not eliminate them, obviously).

* There is "unsafe" keyword to be used for implementation of low-level code that might deal with undefined behavior. Regions of code are explicitly marked as such so that reviewers/auditors can focus on them. This is usually used in order to build safe abstractions over an unsafe concept (e.g. memory allocation).
 

Bigos

Member
Jun 2, 2019
192
484
136
The fundamental question of engineering any product is what is important to the product, and what can be given up.

C++ is the best solution when performance is a top priority.

I disagree. It is a solution but it might not be the best one. Parallelization using C++ requires good up-front design and rigorous discipline in order not to create a buggy mess. With Rust you just focus on performance (e.g. removing locks, increasing lock granularity if otherwise not possible) and not correctness. This can often result in better performance.

And if the performance of the most important innermost loop is what matters you can try to write it in assembly. This works with both C++ and Rust. This is often the best solution for media code, e.g. codec encoders/decoders, as using vector instructions benefits a lot. And compiler auto-vectorization is still a meme.

The idea that you can't make a good C++ program because it doesn't handle memory for you is just silly. I designed the existing Ford manufacturing test system and it has been running beautifully globally for decades. I can't think of a program that is under more scrutiny than this.

I have never said you cannot make a good C++ program. I believe you need more development time to accomplish that instead. And I do not mean just programming time but mostly testing and bug fixing - exposing code to various inputs, running it through sanitizers and fuzzers, etc.

The fact you say "it has been working for decades" proves my point. The vast majority of bugs have already been found and fixed, thus the software is stable. Would you be able to create something like this from scratch, without exposing it to the global market, and have something as stable as this now?

And yes, I do tend to lump all language features that "do the work for you" into one bucket. I call them black boxes. The idea that you can just rely on a black box is silly. Every BIG program I have been involved with (and as you can see from my example, I have had a few) inevitably requires you to understand things at a very low level.

RUST (and other programs) that attempt to make a coder's work easier by doing things for them, take the flexibility of how to do these things away also.

I hope you are thus using C and manual vtables. These are more flexible than C++ ones (e.g. you can dynamically change a function pointer (if it is allocated in non-const memory), you do not need to pass "this" to all vtable functions, you can store constants in the vtable, etc.).

Honestly, I wouldn't hire a coder that didn't know the difference between a critical section, a semaphore, and a mutex.

And what does that have to do with Rust? Do you really think you cannot have all of these there?

(and I have no idea what is the difference between critical section and mutex, maybe this is a Windows thing I am too Linux to understand)

Same for a process or a thread (and when each is the better choice).

Every programming language I know of discerns between these two. Please, leave the straw man alone.

Many coders just want something that makes their life easier; however, making their life easier by using RUST vs C++ comes at a serious performance penalty (speed, latency, and memory required). There are certainly times when this is OK and your win in time and people outweighs the cost, it isn't true for performance critical applications.

Lol, now you invent performance penalties. Rust can be more efficient than C++ as I stated above. It does not have to. Both are statically-typed compiled languages without garbage collection. The Rust compiler, by default, does not allow you to do dangerous things, but this also enables better optimization. For example, if you have a const reference in C++ you know you cannot modify it (let's ignore const_cast) but others still might (by "others" I mean other functions you might (in)directly call). A Rust const reference cannot be modified - period. The compiler can thus cache the value in a register across function calls and not reload it from memory.

Still, additional runtime checks might inflate the code size and thus penalize performance. How much depends on the algorithm you have and there are ways to adapt them to minimize the penalty. As with C++, you can rework the part of the program that has the highest runtime. You can even resort to using "unsafe" (maybe not directly but using a new safe data structure with unsafe implementation). Rust provides a lot more low-level control than garbage collected languages.

My point was (as others was as well) it's crap like RUST that drags down systems.

And my point is that people dismissing Rust for stupid reasons is what fuels security vulnerability business. Again, I do not trust people that say "I never make mistakes".

[RANT]There is always some new shiny toy in software development. I have seen them come and (sometimes) go.

And old men that dismiss all new technology will be left behind.

Anyone remember SOAP? There was a time when it seemed like EVERYONE was raving about it. Same for RUST today. No one wants to make binary level interfaces .... to hard for the poor mistreated software engineers .

Rust supports protobuf, cap'n'proto and similar. You can make a stable versioned binary interface out of a struct, even without external software to generate code (thanks to proc macros).

And you can always just declare a C struct and load it from a file. You will have to use unsafe and/or prove to the compiler the memory you map is correct (e.g. proper alignment, no values that are not representable (e.g. bool has 2 valid values and 254 invalid ones), etc).

I see development branching out into 2 distinct fields. Embedded and low level designers (who will continue to use C and C++) and application level programmers .... who will eventually become unemployed by AI programming. This is the ultimate conclusion to making a language that does it all for you.

This comment is funny. Rust is more successful in embedded programming than in application one. The exception is a server backend software, thanks to Rust async ecosystem.

Lots of time spent in Figma lately. Seems like Ui/Ux design is something that people are still better at than AI . [/RANT]
 
Reactions: moinmoin

eek2121

Diamond Member
Aug 2, 2005
3,384
5,011
136
This comment is funny. Rust is more successful in embedded programming than in application one. The exception is a server backend software, thanks to Rust async ecosystem.
Yeah, I don’t think some people understand. Both Linux and Windows are migrating to Rust for the Kernel, drivers, etc. Rust for embedded systems is a thing as well.
 

Saylick

Diamond Member
Sep 10, 2012
3,901
9,062
136
6.0 GHz

I don't think AMD will risk going above that. They are usually conservative with their clocks unless Intel is clocking really high.
Why not? N4P to N2P/X is a decent jump. Seems like they can push past 6 GHz with ease. I'm just not sure how high above 6 GHz, however. Regarding Intel, you know they're going to try to clock NVL to the moon to be competitive.
 
Reactions: Tlh97

Josh128

Golden Member
Oct 14, 2022
1,016
1,489
106
Seems like the next Intel CPU will be another "lost generation".
How is Zen 6 going?
Can we expect an easy improvement, and ambiguous one, or a disappointment?

Is AMD safe until Zen 7?
Zen 6 appears to be to Zen 5, what Zen 4 was to Zen 3, only with even more cores. So unless Intel has another Alder Lake moment, AMD is safe.
 
Reactions: Joe NYC
Jul 27, 2020
25,599
17,764
146
Why not? N4P to N2P/X is a decent jump. Seems like they can push past 6 GHz with ease.
They also have to stay within their PPT limit and they may want to keep the core from leaking too much current and getting too hot to cool. I think if they can manage 15% IPC uplift with 6 GHz clocks, they might call it a day unless they are very sure that Intel can get away with 400W halo CPU with peak 6.5 GHz ST clock.
 

adroc_thurston

Diamond Member
Jul 2, 2023
5,995
8,443
106
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |