What is wrong with all those AArch64 desktops?
marcin.juszkiewicz.com.pl
marcin.juszkiewicz.com.pl
- 4 or 8 Cortex-A57 cores at 1.7 or 2Ghz
- support for up to 128 gig of either DDR3 or DDR4 memory
- 14 SATA 3 ports
- 2 10GbE ethernet ports
- 8x PCI-E 3.0
(EDIT: Fixed formatting, sorry!)
Arm has a lot more variation than general purpose computing in the processor / SOC / SOM implementation, that is indeed the main appeal on the small end of the scale
For the most part, this doesn't matter. Most SoCs have all the features you want. Though, the article is specifically bemoaning lots of missing I/O. I think most vendors think that the USB connectivity is a big wildcard. But, I agree - NVMe would be nicer than mmc/SD, that's for sure.
> every ARM vendor starts their system using a proprietary, inscrutable Rube Goldberg machine.
This does matter, a lot. It matters so much that we didn't change how x86 booted for ~3 decades after the AT. ARM is trying to change things for their server products, at least [1]. I'm curious just how complicated/expensive the minimal product that satisfied this platform is. Could you still do it with SoCs in the same tier as the Raspi/ODROID/etc? Server-in-name-only?
[1] https://developer.arm.com/architectures/platform-design/serv...
The UEFI environment is a mashup of modules from the CPU/chipset manufacturer, a BIOS vendor like AMI, and sometimes stuff from TianoCore/EDK. The end result is specific to each board model, but most of the modules going into the UEFI implementation are either universal/hardware-agnostic, or uniquely determined by the choice of components on the motherboard (primarily the chipset and superIO). The only stuff here that's excessively messy and error-prone is the ACPI tables.
The configuration UI is particular to the board vendor. The UI necessarily has some tweaks for each particular model, but vendors share most of the code and visual design across the entire product line. Occasionally, it's possible to skip the silly UI and fall back to the default old-fashioned text mode standard configuration UI provided by AMI or whoever.
What does this mean? Where can I read more about this?
Here's a good overview:
https://thekandyancode.wordpress.com/2013/09/21/how-the-rasp...
An AArch64 desktop could be built in the same way that the Raspberry Pi was built, just with a higher spec CPU and more connectors.
If this model works for you, then yeah, a Raspberry Pi or a similar board could work. I've been hearing pretty great things about the new Pinebook Pro laptop.
I suppose in the AMD/Intel world, all these binary blobs are built into UEFI.
But: Is the bootloader even unlockable to install alternative software?
IIRC, MS require the device to support Secure Boot, but whether or not you can disable it or whether you can add other signing keys is undefined (and I have no idea what vendors do). (Originally the requirement was it must be always enabled and only the OEM could add keys, but that has since changed.)
SBC market is completely different thing. But that blog post was not about them.
onboard audio is questionable in quality typically anyway, being some strange monstrosity (ac97 lol... intel-hd-anything)
I agree with the author, what AArch64 (or any alternative architecture) really needs to be taken seriously for more than "toy" or "appliance" type use cases is a real desktop board that an interested party could swap in place of the motherboard of one of their old PCs without having to invest in a pile of adapters.
To me, that means the following:
* Standard ATX or MicroATX formfactor * Standard ATX power input * At least two standard DIMM or SODIMM slots, preferably four * At least 32 lanes of PCIe 3.0 or greater, exposed as at least one x16 and one x4 slot plus one x4 M.2, leaving eight lanes for onboard accessories or more slots as desired * At least two SATA channels, preferably four * At least one copper gigabit ethernet interface * At least six USB 3.0 ports, preferably more and faster. * Onboard audio sufficient for watching Youtube or participating in a VoIP/videoconference call.
Since I'm pretty sure that providing video from power on rather than after the OS loads requires support in the video card itself, onboard video of some sort is probably also a requirement for now as well. Specifics don't matter, but it should be able to handle an accelerated desktop and video decoding.
And a self-synchronizing instruction stream can be a security advantage and a fixed instruction width means Power and AArch64 are trivially self-synchronizing. And really just not having the dominant ISA is a pretty big security advantage in some cases.
I'm pretty sure that neither of those is a huge deal for most people but I can see wanting it.
Historically there were architectures that would reorder these accesses in a "lax" way, making very few guarantees about what you will see from another core, on the theory that it will cost less to keep things synchronized between cores (most data is not shared anyway, so why waste work trying to create a unified view across cores? The CPU can also reorder work for better efficiency.). Intel is historically one of the most conservative, strict-ordering architectures, requiring fewer barrier instructions and creating the illusion that reads and writes more or less occur on a single timeline.
See also:
AArch64 is aligned, but not self-synchronizing. While it would not be possible to execute, reading code at an arbitrary offset can still create be valid code. I'd imagine Power has the same issue, since it's really hard to do this generally if you'd like to have a sane encoding and support immediate.
Somewhat interestingly, x86 is variable length but I have heard that it is often "eventually self-synchronizing": apparently if you start it off at the wrong offset, it will decode a couple of instructions incorrectly but usually end up disassembling to the correct ones.
Another benefit is that the fetch stage doesn't have to handle corner cases like the instruction crossing cache line boundaries. I don't think the security implications were anything the designers cared about but they're a third benefit. Oh, and I think some language designers have stored garbage collection related information in the least significant bits of stored addresses since it doesn't affect flow control but I wouldn't swear to that.
You're right that a natural x86 instruction stream will tend to synchronize itself fairly quickly. The problem is a malicious instruction stream that can be designed not to do that for at least long enough to do its thing.
“Why can’t I buy” is essentially equivalent to “why doesn’t anyone sell”, which is basically “why isn’t there a market for?”
It’s possible to have a conversation around “why isn’t there a market for ARM desktops?” or equivalent but a conversation about “why isn’t there a market for anything but x86” would basically be enumerating the alternatives and examining each.
Nobody is going to open a store aimed at the “anyone but x86” market.
When one way is dominant, it's not uncommon for all the others to get rolled up into an "alternative" grouping. Any one of them by itself would be too small to amount to even a small store, but all of them together are a decent set.
Why can’t I buy talent (in the sense of myself being talented at something)?
Because nobody sells it? There’s no market for it? Nah.
I’m an economist but the notion of everything being tradable on a market needs to be curtailed because it simply isn’t true.
The desktop is essentially a legacy model as it stands today. Nobody is offering ARM because Windows doesn’t support it, and there really aren’t other options. Even enterprises are shipping the cheapest crap possible for PCs and innovating on mobile.
You’ll see some change when Apple ships ultralight laptops that aren’t as compromised as the intel platform devices.
Last time I check their pricing was actually quite competitive to x86 system.
- 8 core CPU
- 16 GB LPDDR4x
- Volta based GPU
- Gig ethernet (native)
- PCIe x8 (x16 physical slot)
- m.2 E key (PCIe wireless or LTE)
- m.2 M key (PCIe NVMe SSD)
- 2 USB 3.1
- HD audio header
- eSATAp through PCie bridge (allows native 2.5" SATA drives)
But really there isn't really much reason to use ARM on a desktop outside of needs relating to specifically needing to have ARM.
Finally after the firmware fixes came about to improve cooling a few months ago and it was advised to just run the thing set up on its side, I decided to revisit running a 'desktop' on it.
Raspbian, as most people know, is 32-bit and the idea is you can plug the microsd card it into any model of pi ever made and it'll run. This sucks for performance and you can't run a version of firefox made the past few years. Chromium isn't an option on a 4GB ram system, it's just not.
I eventually settled on using sakaki's gentoo pi64 build and it was fairly painless to get running. Unfortunately, she hasn't kept the build up to date and there's a lot of weird customization she performed to get things running in the early days.
Anyways aside from having it run some compiles overnight and finding a new binhost to pull prebuilt stuff from, it runs pretty well. Actually better than my Intel Atom powered GPD Pocket (as it does not throttle ever). All the hardware works, and I've had no video issues since switching to the 5.4 kernel. It checks most of the boxes that OP asked for aside from the RAM being limited to 4GB. Unlike more powerful options on the market, it's got a wide release and a low price point so developers will be working on it.
So yeah, there's your AArch64 desktop you can buy today that everything works on for around $50. If you want to improve performance a bit more for IO, there's SSD/nvme adapters for it, and while I'm unsure about hooking into pci-e, the device has it...
Oh, and the audio thing is dumb as hell to complain about. Just output the audio through HDMI to your receiver and call it a day. What's the big friggin deal that the desktop lacks a 7.1 analog output. If you want high quality headphone audio, USB audio is practically plug and play on any OS these days. I don't get it.
Not using chromium or electron apps helps my RAM situation pretty strongly. The only time I run OOM is if the pi is doing on-device compiling with too many threads. I run a modest 8-12 firefox tabs. Usually just over half the ram is utilized throughout the day.
If you hack into PCIe you'd lose the USB. It's only a single x1 connection. I suppose you could hack a PCIe switch on top of that but even so it's x1 so it was already oversubscribed just hosting the USB 3 interfaces.
Dude, audiophiles run complicated setups. Maybe their receiver doesn't take HDMI and they'd prefer to route that to the TV. Maybe they're using analog amps from the 70s that take 1/4" balanced TRS. Maybe lots of things. That thought process is exactly the kind of thinking that leads to rigid, inflexible designs that lock people into parts or hardware they don't want to use
It's measurably worse than a cheap but isolated and shielded external DAC.
Measurable with an oscilloscope though. Not your ears. pfft. Audiophiles.
Admittedly I’m running a pretty budget setup, so modern systems may have improved measurably, but I’ve noticed on both my desktop and my laptop (with 2010 Intel 5 Series chipsets) the onboard audio line out gets really noisy, so much so that I can hear different kinds of buzzing when I move the mouse and scroll :) Wouldn’t call myself an audiophile by any means either, haha.
But that wasn't even my point. My point was: Any sort of sound being sent out of the device should be digital (pci-e to a sound card, USB to a headphone DAC, or HDMI/toslink/coax to a receiver). All of those options mostly eliminate the noise problem when done right.
Apple rumors are half prediction and half wish. I don’t disagree with your wish (10 year old performance is fine for me) but it’s really not Apple’s MO. They aren’t going to release a new pro workstation and then turn around and make cheap low-end hardware aimed at developers.
Although ARM processors are fast in certain benchmarks, they cannot compete with x86 for performance and certainly cannot emulate the instruction set at a speed users would find acceptable.
ARM makes great sense for low power devices and _maybe_ servers. Apple already makes tons of the former and seems uninterested in the later.
The A-series chips in the iPhone and iPad seem to compare pretty favorable to Intel processors in the low to mid end.
Now imagine a version of the A-series processor with more space, thermal headroom, and cores.
BitCode is iOS only.
https://www.highcaffeinecontent.com/blog/20190518-Translatin...
There's two reasons to think that an ARM transition would be easier:
1. The endianness is the same. The PPC/Intel transition required processes to share memory while disagreeing on byte order.
2. Apple controls their ARM CPU designs. They can add whatever they like.
3. rosetta only emulated the actual app binary; eventually it called in to native libs, so performance for the most part held up really well iirc (for apps, not sure about games)
in Geekbench. That particular benchmark has been critized for years for not being comparable across platforms.
Jet black, announced for preorder at WWDC. They wouldn’t be able to make enough, and now a boring, disruptive CPU transition is sexy.
There have been some weird rumors out of Asia about a Mac “gaming laptop” that could easily be misinterpreting a product like this.
Also, I think folks ITT are overestimating the difficulty of acceptable performance binary translation (not direct emulation) of x64->AArch64, especially when Apple controls and has experts at every level of the stack. 32-bit apps weren’t de-supported this year just to save some memory.
Apple can use a lot of cache in their CPU designs because they can charge a lot for their hardware (L1/L2 cache is very expensive). But the rest of the market can't since they're mostly selling commodity hardware — with commodity chips — and price is a very sensitive point there.
So Apple could in theory make and sell plenty of Premium ARM laptops with performant x86 compatibility for older software while being fast and cool for native apps while the Windows/Linux competitors will be still lagging way behind with a poor user experience.
It would a much better exercise to create a systems design document for what an AArch64 desktop should have, required, extras, and nice to have. Start there and work forward, not at a full fledged PC desktop with 30 years of evolution behind it and start there.
Its much more exciting to see what will happen with laptops and (in cloud) servers.
Now these were in the context of white box customer premises networking equipment, but what I found quite interesting was that these machines all supported UEFI.
There's certainly an effect to have some standardisation for ARM machines.
But who knows when it'll get to the desktop.
But also, Aren't we still complaining about linux on the desktop?
Content creation is done almost exclusively through proprietary software that's heavily optimized for a given platform, so this would be one of the worst markets to tackle first with an architecture change.
https://abopen.com/news/building-a-risc-v-pc/
Also that thing does not have up-gradable RAM, but you do have PCI-E.
The RPi4 running Raspbian is just a tad short of being perfectly acceptable for users like my GF. It's just a tad sluggish, so either a bit more streamlining of the platform, or a bit beefier CPU and GPU and it would be just fine for her.
EDIT: To be clear, non-SD boot on the pi 4 "will be added in the future via optional bootloader updates"[0], so hopefully this is a temporary complaint.
[0] https://www.raspberrypi.org/documentation/hardware/raspberry...
Bonus points for the instructions using a Pi as a server for this setup.
[1] https://www.raspberrypi.org/documentation/hardware/raspberry...
I have a cluster of 6 in my basement running Kubernetes and Glusterfs, and I have been using them for all my fun CUDA practice to learn a bit more image processing.
I am blown away these days by the power of these cheap and small boards. I just don't have any use for them right now and I know I would tinker with them for a few days then they would end up in a drawer collecting dust.
Isn't every server meant to have a 1GbE port nowadays? Dont most of the servers have m.2?
And for PCIe slots - aren't those extensible with raisers?
> That system was kind of Frankenstein’s monster. Audio over some USB stereo-only dongle, all USB devices plugged into hubs due to only two ports on mainboard I/O panel.
Perhaps one could just put a USB hub and the audio dongle inside the actual case?
The only things I miss are being able to run the latest versions of some software, which are often compiled only for x86 or MacOS. For instance, I'm currently stuck on Debian's Firefox ESR (currently Firefox 68.4) because Firefox doesn't offer precompiled binaries for AArch64 on Linux.
For my desktop I want as much power as money permits. And the most important thing is ergonomy, since I rather invest into my eyes and wrists than into the silicon.
I think the Gigabyte ThunderX Station is being marketed in some channels, like the main page of this site: https://www.phoenicselectronics.com
The new Fujitsu venture Socionext does sell stuff, but like everyone has said, they're interested in doing design-build for your factory robot controller or your edge supercomputer. But they do sell a box: http://www.socionext.com/en/products/assp/SynQuacer/Edge/
It just isn't marketed as a GP /HEDT box because that isn't their market
My desktop system is a NanoPi M4 and a 16" Sceptre monitor. The combined system draws a total of about 6.5 W. Granted, there are some laptops that come near that level of power consumption. I simply like the form factor of a desktop PC.
Does it suddenly shut down if you stop pedaling?!
It is desktop like.
Arm desktops are just single board computers. Why? Because that is all you need.
If you want to assemble overprice parts yourself to get marginal benefits stick with x86.
The truth is the market for desktops even in the x86 market has shrunk considerably because there are few benefits except if you are rendering and even then you should be using cloud compute in that case.
Like an artist is supposed to use a remote desktop to do 3D modelling? Or an engineer doing CAD? Or a video editor creating 4k video?
There are a lot of professionals that need powerful computers. Not everyone just needs a text editor to write their SaaS application.
Like an artist is supposed to use a remote desktop to do 3D modelling? Or an engineer doing CAD? Or a video editor creating 4k video?
Yes. High-end workstations are effectively obsolete for professionals rather than prosumers, it's just taking some IT departments a while to catch on. All those workloads are highly bursty and involve substantial collaboration, which makes virtualization a natural fit. I haven't tested and wouldn't necessarily recommend a Raspberry Pi as a client terminal, but it just doesn't make sense any more to put a really powerful machine under everyone's desk rather than having a rackload of servers as a pooled resource.
https://www.nvidia.com/en-us/design-visualization/quadro-vdw...