[Fixed] [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC)

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Warrex » Fri Jan 29, 2021 12:43 pm

What are you talking about? I am not an Apple evangelist nor do I point to their marketing material. I did point you to several benchmarks which show the M1s single threading performance. Anandtech is not part of Apple nor is the Standard Performance Evaluation Corporation (SPEC) or Maxon.

If GZDoom is a workload the M1 performs worse in than in these other tests this is fine to me. I was just wondering if there was optimization potential down the road. If there is not or you do not care, this is also fine. Our Core i7s and my Mac Mini are already plenty fast.
Warrex
 
Joined: 08 Aug 2013

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Chris » Fri Jan 29, 2021 12:47 pm

Graf Zahl wrote:By now ARM looks to be far better suited for the future, as there's a lot more competition and less reliance on one or two manufacturers.

I wonder how things will go if nVidia ends up buying ARM as predicted. There are concerns they may try to raise licensing costs or restrict what has been a relatively easy to access design. RISC-V is another thing I've been hearing more of lately as an up-and-coming competitor to x86 and ARM.
User avatar
Chris
 
Joined: 17 Jul 2003

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Graf Zahl » Fri Jan 29, 2021 12:56 pm

We'll have to see. If NVidia raises licensing fees it might ultimately play into Apple's hands which surely is not what NVidia wants, though.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Warrex » Fri Jan 29, 2021 1:02 pm

Nice article on RISC-V: https://arstechnica.com/gadgets/2020/12 ... -per-watt/

TLDR: Promising but not there yet, e.g. due to missing software. In the medium to long run a potential threat to ARM which I think makes it more unlikely for Nvidia to raise licensing fees but we will see.

On Apple vs. Nvidia:
"It’s also unlikely – at least according to Alan Priestley, VP Analyst at Gartner – that Apple will make a U-turn on its decision to switch its Mac over to Arm-based processors. Priestley claims Apple already “holds an architectural license for the ARM ISA” which means the Nvidia acquisition should have little influence. Plus, it’s in both Apple’s and Nvidia’s financial interest to continue the partnership."

Source: https://www.trustedreviews.com/news/how ... on-4098618
Warrex
 
Joined: 08 Aug 2013

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Cacodemon345 » Fri Jan 29, 2021 1:38 pm

People are expecting Nvidia to alter the Neoverse stuff when Arm is bought by them, which is pretty anti-competitive.
Cacodemon345
 
Joined: 22 Dec 2017
Discord: Cacodemon345#9151
Github ID: Cacodemon345
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Warrex » Fri Feb 05, 2021 11:04 am

Is GZDoom using NEON on ARM?

I just saw that on X86 the used SIMD extensions are all listed. NEON does not show up in the log on the M1 though.
Warrex
 
Joined: 08 Aug 2013

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Graf Zahl » Fri Feb 05, 2021 1:02 pm

ARM has never been a primary target platform. So it neither has full feature checks nor implementation. It'd only be relevant for the software renderer anyway - unless it uses the extensions for regular math code.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Warrex » Fri Feb 05, 2021 1:25 pm

Arm themselves state that "Neon technology provides a dedicated extension to the Instruction Set Architecture, providing additional instructions that can perform mathematical operations in parallel on multiple data streams" and that "2D/3D graphics or gaming" are a use case.

Source: https://developer.arm.com/architectures ... or-armv8-a
Warrex
 
Joined: 08 Aug 2013

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby dpJudas » Fri Feb 05, 2021 1:48 pm

I think Graf does know what SIMD instructions are. ;)

GZDoom actually does use NEON on the M1 simply because clang/llvm itself will automatically use it as it is guaranteed to be available on the platform. It is one of the reasons that the M1 benchmarks perform so nicely as they do, since x64 compiled software generally only can depend on SSE2 per default (the base instruction set for x64) and not AVX2 or newer. That is, the M1 compiled GZDoom uses NEON everywhere where the C++ compiler's autovectorizer can find an usage while x64 builds generally only uses it where a developer manually added intrinsics in the code (*).

*) Technically x64 can be autovectorized using only the SSE2 instruction set. However, that greatly limits what it can do because a lot of the instructions are missing in such an early version of the x64 SIMD instruction set.
dpJudas
 
 
 
Joined: 28 May 2016

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby _mental_ » Fri Feb 05, 2021 1:57 pm

For an unknown reason, people think that the list of instructions supported by their CPUs (potentially incomplete as there is no detection for the recent additions) is the list of instructions that is actually used by GZDoom.
It’s certainly not the first time this misunderstanding arises.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC

Postby Graf Zahl » Fri Feb 05, 2021 2:17 pm

dpJudas wrote:I think Graf does know what SIMD instructions are. ;)

GZDoom actually does use NEON on the M1 simply because clang/llvm itself will automatically use it as it is guaranteed to be available on the platform. It is one of the reasons that the M1 benchmarks perform so nicely as they do, since x64 compiled software generally only can depend on SSE2 per default (the base instruction set for x64) and not AVX2 or newer. That is, the M1 compiled GZDoom uses NEON everywhere where the C++ compiler's autovectorizer can find an usage while x64 builds generally only uses it where a developer manually added intrinsics in the code (*).


Even then, there's very little opportunity to use the auto-vectorizer in the hardware renderer's math code as it does not really work on vector data. But AVX vs. SSE2 does surely not help at all - the main bottleneck in that code is the CPU cache, not the instruction set. Which is why it is almost impossible to further optimize it.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Previous

Return to Closed Bugs

Who is online

Users browsing this forum: No registered users and 2 guests