Hacker News
Nvidia’s Vera Whitepaper Has a Thread Loose
titzer
|next
[-]
amluto
|next
|previous
[-]
Maybe if “cyber” models get good enough at exploiting speculation attacks, people will start demanding equipment that is less prone to these attacks.
dzaima
|root
|parent
|next
[-]
(doesn't help when the attack target is general-purpose/user-controlled code leaking things, but if you're relying on a process not leaking memory plainly available to it without full careful control of what the process runs, you've already been fully-SOL on that for decades and nothing has nor will nor can change about that)
scotty79
|root
|parent
|next
|previous
[-]
twoodfin
|next
|previous
[-]
That you need a whole lot of “ordinary” compute to benefit from the scaling properties of agents is the reason Nvidia is making this chip in the first place.
jcranmer
|root
|parent
|next
[-]
I also don't buy that it's a particularly representative set of tasks you might do with agents. Also included in the SPEC benchmarks are multimedia codecs, lossless data compression codecs, sqlite (i.e., database), all of which are going to be things you should easily throw into the sets of tasks an agentic workload might do. Cherry-picking just the compiler benchmarks instead of all of SPECint... again, it just raises a couple of eyebrows.
[1] To be honest, I'm kinda surprised that both gcc and llvm are in SPEC cpu2026.
fibonacci112358
|root
|parent
|next
[-]
jcranmer
|root
|parent
|next
[-]
Where compiler code is going to get really unusual, I suspect, is that compilers tend to be a little mono-focused on relatively few data structures. I know I was able to get measurable (single-digit percent!) performance differences in LLVM making very small tweaks to layout in llvm::Value. By contrast, when I was working on Thunderbird, the only similarly small change I could think to make that kind of difference would be to "oops, all string functions are now a cross-DLL call" (and even then, only because string handling is so dominant in that kind of application). Another kind of difference is that the compiler-based benchmarks are going to be quite light in virtual or indirect function calls (there's more of an emphasis on switch-based dispatching than vtable-based dispatching in most compiler implementations), which is going to make it a poorer proxy for some kinds of applications.
14113
|root
|parent
[-]
14113
|root
|parent
|next
|previous
[-]
If you're solely interested in single-core performance, then I would agree that they are a good stress test, but I think for a processor that is being sold on it's parallelism, they are not a great benchmark.
adrian_b
|root
|parent
[-]
The reason is that for the other benchmarks the CPU vendors have always succeeded sooner or later, to tweak their compilers and compiling options, or even the hardware of the CPUs, in order to get improved benchmark results that nonetheless are not indicative of the improvements in other applications.
On the other hand, the compiling benchmarks, like with gcc, and now also with clang, are too diverse in CPU resource usage and no special feature of the CPU has a significantly greater weight than others, so special tricks to enhance the benchmark results have never been found.
When looking at the past SPECint results, the values of the gcc benchmark remain the most reliable relative performance estimator.
I doubt that this will change in the near future.
Moreover, the multi-threaded compiling benchmark is also very useful, because it matches exactly a real-world workload that is extremely frequently encountered. Due to the great clock frequency difference between running a benchmark on a single thread and running it on all available threads, the single-threaded results have a very poor correlation with the multi-threaded results.
lstodd
|root
|parent
|previous
[-]
That is, nowhere.
Also you are wrong and anyone sizing up an arch to put their loads onto must first try that load on it and not rely on "bah, compilers compile on it".
speed_spread
|root
|parent
|next
[-]
pjmlp
|root
|parent
|previous
[-]
wtallis
|root
|parent
[-]
hajile
|root
|parent
|next
[-]
I'm not completely convinced of this.
If you ignore VLIW, you just have a very unexciting RISC ISA, but because of the VLIW, you get extra scheduling info that most RISC designs don't provide which might be advantageous. The real question is actually about the code density of 41-bit instructions and if it can be offset by the 128-bit package (and perhaps something like allowing new 24-bit compressed instructions).
Poulson already somewhat proved part of this as it added back a traditional frontend and even added some OoO capabilities and 4-way SMT. It wasn't earth-shattering, but it wasn't absolute garbage either.
adrian_b
|root
|parent
[-]
The Itanium ISA actually had a few nice features, but it also had other bad features that outweighed the good features. Besides the static instruction scheduling in bundles, there was also the handicap of using SPARC style register windows, which slowed-down context switches.
The second version of HP PA-RISC, which was too quickly replaced by Itanium, would have had good chances of providing superior performance in comparison with Itanium, had it not been abandoned without a fight.
pjmlp
|root
|parent
|previous
[-]
Remember, the very first Windows XP 64 bit release was on Itanium.
my123
|root
|parent
|next
[-]
kjs3
|root
|parent
|previous
[-]
[1] https://archive.org/details/NT351PMZPPC
[2] https://www.techmonitor.ai/technology/undercurrent_bubbling_...
[3] Legend has it that the SPARC port existed, done by Intergraph, but for Reasons was never a product.
torginus
|root
|parent
|previous
[-]
The former implies per core memory bandwidth is probably not great, meaning SQLite wont perform as well, the latter meaning FP workloads are better done on the GPU, so video encoding wont be a high point. The idea is to run branchy integer workloads that fit into RAM imo, which is what these benchmarks measure.
rbanffy
|root
|parent
|previous
[-]
Benchmarking is tricky. The only one that counts is your software running the way you run it. I often run a profiler while running unit/integration tests, but I know the results will not replicate actual use - it's just a proxy, because I don't want to profile everything in production unless the profiler has almost zero cost.
transcriptase
|next
|previous
[-]
- The digital equivalent of the VW emissions scandal where drivers detected when they were being benchmarked and altering rendering for better results
- Selling GPUs as having 4gb vram when it was only 3.5gb usable, the remaining 0.5 being absurdly slower and causing performance loss when used
- Using intentionally misleading naming schemes to obfuscate things like memory bus width being drastically different between what superficially appeared to be similarly spec’d cards
A dozen other less egregious but similarly disingenuous decisions
But to be clear, I’m a huge fan and continue to run Nvidia because their products are generally incredible regardless
podocarp
|root
|parent
|previous
[-]
Dylan16807
|root
|parent
|next
[-]
That GPU was much worse though. If that .5GB had been moderately slower it wouldn't have gotten the same attention. But because it was a weird backup path to that segment of memory, on a design that normally runs all segments in parallel, it ran at 1/7 the speed of everything else. Overflowing into it was devastating.
kjs3
|root
|parent
|previous
[-]
KeplerBoy
|next
|previous
[-]
https://www.amd.com/en/products/processors/server/epyc/9006-...
wtallis
|root
|parent
[-]
You could try reading the footnotes, which include a link to https://www.amd.com/content/dam/amd/en/documents/solutions/a...
KeplerBoy
|root
|parent
[-]
It's marketing after all and nobody should make buying decisions based on that.
davoneus
|next
|previous
[-]
foota
|next
|previous
[-]
dannyw
|next
|previous
[-]
I used to really enjoy Chips and Cheese's writing, not sure if they made a change.
Lvl999Noob
|root
|parent
[-]
If you say it isn't just slop, I suppose I'll push past and read it. The topic itself did seem interesting.
brcmthrowaway
|previous
[-]
jnaina
|root
|parent
|previous
[-]
They are not competing in the CPU space. Different markets.