Nvidia's Arm deal sparks quick backlash in chip industry
uk.reuters.com
uk.reuters.com
Right now I'm not interesting in having a debate about whether or not that's a good thing, but it would be good to have a realistic and sober discussion about the impact on this acquisition on China's technological ambitions.
There have been recent reports that China's leading semiconductor firm (called SMIC) will be added to the Entity List, which will blocks its access to western technology. If true, this effectively scuttles China's attempts to compete with Taiwan's TSMC and reach semiconductor fabrication parity. SMIC's ambitions heavily rely on freely accessing US-aligned technology: specifically lithography equipment from the Netherlands-based ASML and engineers poached from Taiwan's world-leading semiconductor manufacturing firms.
On the x86 front, when AMD was desperate for cash a few years ago they setup joint ventures with China (THATIC and Hygon) and were transferring AMD's then current-generation Zen 1 architecture to China. Further transfer has also been blocked via the Entity List. It's also worth noting that AMD is in a much better financial position after the success of their Ryzen product line, so has less need to make difficult trade-offs by transferring their current-generation technology in exchange for short-term cash injections, so it seems very unlikely they will applying for an export license.
At this point, if I was China, I would invest heavily in RISC-V based cores, and openly release highly competitive designs.
But longer term it creates a trend in which Armerican companies themselves will struggle in China. So what? Well, China will overtake the US so ultimately the US will have a disadvantage in the world's top market.
Edit: That's a key issue with the US's strategy with China, which seems to be focused on the short term (One might argue that they did the same mistake in Iraq in Afghanistan...) The point is that relations with China are a long game and China certainly plays a long game. The US need a long term plan and to accept that they cannot keep the top spot indefinitely.
China is facing a massive demographic cliff (due to 35 years of the One Child Policy). It's been predicted for decades that "China will grow old before it gets rich" and it's way too late to change. From the 2030s onwards, China faces a massive elderly population and dwindling workforce.
The United States has favorable demographics for the next few decades and will certainly be able to keep parity with China. Admittedly the US has started developing issues around demographics (falling fertility rate, and falling immigration), but it's not as dire as China current situation.
Your comment is geopolitical. So I replied accordingly. Technology does not live in a bubble. What is happening is a geopolitical struggle, and when you mention the US barring Arm from Chinese companies or issues with SMIC, this is geopolitical, not purely technology and trying to restrict the discussion purely to technology would be missing the big picture (hence my comment on having a long term plan).
China is far from its peak. When Chinese GDP is 4x the US's GDP then sure, but we're far from that.
I don't understand the demographics argument. China's population is 4x the US's. Global population needs to stabilise (and is bery slowly getting there). To think that the US can simply compete with China (and India) through population growth is bonkers.
It may be hard to believe, but the same will inevitably happen to China, and it's near-impossible to change because the damage has already been done. It's the inevitable legacy of enforcing Deng Xiaoping's One Child Policy for 35 years.
What should not be forgotten is that Japan's population is only 1/3 of the US's, that it has extremely limited land resources, and that it is very developed (see GDP per capita). None of these apply to China.
If China had the same GDP per capita as Japan then its economy would be 12x larger than Japan's and 2.6x times larger than the US's.
China is still relatively poor per capita and thus still has a huge margin before reaching a peak, even if breakneck growth cannot be maintained.
"China will grow old before it gets rich" and it's way too late to change
china can enforce "3 children per household" anytimeThe only authoritarian regime that tried to do so was Romania under Communist dictator Nicolae Ceausescu. He banned abortion and contraception overnight.
There was a massive spike in birth rate that year, but people soon found ways around the ban and birth rate started falling sharply again.
For example since 2007 Russia started to pay “Mother’s capital” for each child born after a first one. ~$10k for a kid.
China has enough money to give away.
Total Fertility Rate in Hungary has grown from abysmal 1.2 to still bad 1.55 or so, still far from simple reproduction, but at least it goes in different direction from most of the developed world.
China can enforce mandatory population growth easily enough (anyone wanting a marriage license must produce a child within 6 months, if not, the marriage is annulled), and if that is on the 10-15 year time horizon, they can easily allow cloning technology be used on humans for the short term.
So they start 3 months in advance? /s
Whatever, I think it's much easier to limit the number of children than to enforce a minimum. Both can be very unwelcomed for many reasons I don't want to get into, but not everybody can have children.
The idea is, "unwelcomed" is not an issue. In the Uighur regions, China is already practicing a form of marriage enforcement to make sure there's more han babies in the region.
Long term China is fine. Europe not so much.. US even less so.
Saying that, best bet for China seems to be counting on rural population, and investing heavily in their education.
A lot of bizarre fantasies about what the Chinese government can and can't do - they are an authoritarian state, not a totalitarian state. The idea that they can enforce multiple births in a culture that is trending sharply away from having multiple kids by waving a wand is just ridiculous. Further, they have barely deployed any serious incentives to have more kids - it would be cheaper and easier to do Scando-style childcare and subsidies.
The other basic fact that your responders ignore is that Western countries have huge immigration rates compared to China, which hardly has any immigration. Their rate is 750 times lower than the USA, for example, and the bulk of immigrants to China (historically) have been from ethnic Chinese populations abroad (notably Vietnam); these populations are also aging.
China invested a lot in biotechnology and has few ethical concerns in this regard. This scenario might be within the realm of possibility for them.
The word for that is "invention" and I believe I used it in correct meaning (not a native speaker of English). There is nothing unthinkable about artificial wombs, though it is obviously hard. The research runs in Western countries as well. If Western scientists thought it was principially impossible to construct such devices ever, they wouldn't probably spend their time and grant money on fiddling around that concept.
Now China has a) a lot of classified research, b) fewer ethical concerns, c) is aware about their future demographic problems stemming from One Child Policy. I would be surprised if they did not at least try this approach.
As for curing aging, the longevity field seems to be more developed in the West so far, even though their aims are more modest - prolonging the healthspan by, say, 8-10 years. While not a solution, such progress would definitely buy some time.
Interestingly, there is a very niche subset of longevity research that looks into reproductive health of women over 40. It is possible, though far from certain, that oocyte quality could be improved even in older women - where aneuploidy is otherwise a big problem.
Their growth is slowing, they've got major structural issues internally, and the rest of the world is uniting against them.
The US and the West are going to stop playing nice.
The US are particularly powerful because they are both developed and have a large population. Same for Germany in Europe.
Based on that, I don't see why China and India should remain behind the US, even if there'll of course be bumps in the road.
Education and wealth matter a lot. If China can spread this out, then we'll be talking. As it stands, their educated middle class is very concentrated.
Those exact words has been making the headlines in the newspapers since 1989 at least, every single year, and yet here we are today, at the point where the US is willing to dismantle half of the global trade only to stop China from accessing whatever useful technology it still has not bought in the West.
Or stolen.
Examples among many other include Nortel/Huawei, Chinese state hackers trying to get into ASML.
And whenever a company wants to do business in China, they need to create a subsidiary in China. The Chinese communist party has a fellow embedded in said subsidiary, and they can veto anything.
There are 1.4 BILLION people in China. Even if in a few decades the entire world has a similar GDP per capita, China will top the list.
It might sound weird to our modern ears. But China has always been this planet's top economy until Europe found America and then 'found' Africa.
Also, scientific power is not the same as developed market. USSR was scientifically strong, but economically weak, ask ex-Soviet citizens how the 1980s looked like - an era of queues for basic necessities.
By the way, bringing in politics to a discussion about tech with those comments on Iraq is best avoided.
Check you first paragraph, it is political commentary as well. Also, this whole topic is 99% politics and very little technology.
The Chinese market was never actually open to American companies. Not long term. They may have had temporary success but the CCP's goal was always to displace and replace with their own domestic competitors.
While the Chinese market may be close off to the US and foreign companies, the world market is greater than just the Chinese market and the American markets. For example, American companies are doing well in India, a market which is increasingly becoming closed to China due to geopolitical tensions.
Of course, any government's goal should be to diversify and not to be too dependent on a single country (like China is dependent on the US at the money). But that indeed should something for the Chinese government to worry about and, arguably, not for the US to force their hand in a move that will actually benefit China in the long term.
[1] https://www.semiconductors.org/the-largest-share-of-u-s-indu...
Well, in the short term, American companies are making a pretty penny in China.
Apple benefits from China in two ways. 1) Cheap labor, and 2) huge sales of their products to the Chinese themselves.
Even Facebook, which doesn’t work in China, is making $5 billion in revenue annually from ad sales.
Particularly looking at the Soviets, it is remarkable how often the US's serious adversaries in the last century choose to disembowel themselves. It is a great game to see which government fails beyond recovery first.
The scary thing is, it might be the US next.
Nor did he commit the US to expensive foreign wars. In fact his primary foreign policy objective was to change the consensus on China, which he appears to have managed without spending a penny. Trade war/cold war with China is now firmly on the global agenda, whereas 4 years ago it wasn't. Even his opponents talk about which parts of his trade barriers to keep vs whether to scrap them entirely.
Does China have enough resource? Remain to be seen but odds are slightly in the yes direction.
That's not even the whole truth. The version of Zen 1 they exported had to be nerfed in several ways in order to be given the OK for export.
Performance is much worse than comparable Zen 1 CPUs.
See https://www.anandtech.com/show/15493/hygon-dhyana-reviewed-c...
> At this point, if I was China, I would invest heavily in RISC-V based cores, and openly release highly competitive designs.
That's actually exactly what they are doing![2] Alibaba claims to have developed the most powerful RISC-V processor up to date [3] and Huawei has long been rumoured to be working on their own design.
[1] https://asia.nikkei.com/Business/China-tech/Arm-China-asks-B...
[2] https://cntechpost.com/2020/07/25/risc-v-processor-designed-...
[3] https://www.nextplatform.com/2020/08/21/alibaba-on-the-bleed...
What could the parent company even do if something like this occurred across less-then-friendly national boundaries? Could the parent company sue to force the errant division to close? In what court?
It's bizarre that it's not more common...
[0] https://www.bloomberg.com/opinion/articles/2020-07-01/main-s... look for "Who controls a company?"
I don't understand how the guy controls anything. Even if say he has all the designs copied in China, Arm Global could just declare those are stolen designs and anyone that uses it without paying the global company directly would be in violation of that and could be sued (in other countries, if not China).
I think the only reason this comical and absurd situation continues is only because - like many tech companies before it - Arm continues to hope for bread crumbs in the "huge Chinese market" and accept being at the mercy of the CCP, even though this has proven to be a disastrous strategy for most other companies that thought like this. In the end, the government just gives your tech to the local companies, that end up dominating there, and maybe even globally later on, with your tech.
They did. And in other for a new Seal to be approved, it required something else ( I cant remember what it was ) which was also in the hand of the CEO. So in China under their law ARM China is perfectly fine and there is nothing they can / would do. ( Not that they are trying to help ) ARM UK and US can't do much apart from not supplying future design to ARM China.
I should note all of these was before UK and China's tension got worse.
Most commonly know example is "bearer bonds", which are often used in heist movies and similar films, including, in the original script, in Ferris Bueller's Day Off[1].
[1] https://goat.com.au/ferris-buellers-day-off/today-i-learned-...
I don't know how easy that is, which probably explains why it's not more common.
https://www.handelsblatt.com/english/companies/carl-zeiss-an...
1. https://asia.nikkei.com/Business/Companies/Softbanks-Arm-Chi...
Typical in very corrupt countries. I grew up in one. People who lead big/important corporations are always part of the ruling party. And they do everything they can to stay in power.
And another data point, I was working for a startup one of who's investors was Sequoia, in a meeting a person from Sequoia advised us on some cloud company we can use, mentioned they are also investors in it. We asked about their China division, and he told us the China division while technically part of the same company, is in practice a complete separate thing and we shouldn't trust it at all.
I personally expect some announcement to be made late this year or early 2021. Huawei in general waits very long before it announces products or services, perk of not being a publicly traded company. Just as an interesting example, they seem to be developing a programming language and want to release it early next year, but no public announcement of any kind has been made yet. [4]
[1] https://riscv.org/membership/members/
[2] http://www.chinadaily.com.cn/a/201908/23/WS5d5fe368a310cf3e3...
[3] https://en.wikipedia.org/wiki/HiSilicon#Smartphone_applicati...
[4] https://cntechpost.com/2020/09/13/huawei-rumored-to-be-devel...
You can't sanction public knowledge. The mere idea of such should be ridiculed.
Is it possible the USA government can say that this is open source and free for all to use, except for people in China.
For example, if Red Hat Fedora is open sourced, but Red Hat is a USA company. Then they will still be under USA jurisdiction.
Given all the lies and bullshit coming out of the current administration, I can actually see them doing this.
On a related note, I don't think it's an accident that Apple almost completely avoids talking about "Arm" but instead calls it "Apple Silicon".
I don't know about Huawei, I imagine that all Chinese processor companies have backup plans for when they are prevented from using Arm -- the writing has been on the wall for a while ... Moving the RISC-V foundation to Switzerland and setting up Arm China as a separate entity were all part of the preparation.
[1] https://conferences.computer.org/isca/pdfs/ISCA2020-4QlDegUf...
And then what? Sure they can sell last-generation chips within China - but they won't have access to any R&D and anything they try to export will be confiscated.
https://www.tomshardware.com/news/huawei-risc-v-ai-processor...
I think the Chinese will continue with ARM short term and then create a Chinese-dominated alternative.
From an operating systems point of view I would go for an intermediate language (similar to .NET or Java bytecode) that I also could do some on-the-fly verification of and only have very little compiled for the actual cpu (at least beyond dedicated embedded systems).
Being forced to redo the full stack from processors to end-user OS and cloud services gives a possibility to let go of a lot legacy and pursue some ideas that have been "cutting-edge research" in CS for years.
https://consumer.huawei.com/en/press/news/2019/huawei-launch...
With say:
And the actual instruction set of the CPU doesn't matter that much.
Really? Have a look at the Premier members:
It's not based in the US, and its under the BSD License.
https://www.bunniestudios.com/blog/?p=5590
Open Source Could Be a Casualty of the Trade War
When I heard that ARM was to stop doing business with Huawei, I was a little bit puzzled as to how that worked: ARM is a British company owned by a Japanese conglomerate; how was the US able to extend its influence beyond its citizens and borders?
Yeah easy, the US is not the only OSS producer, if the US wants to make this, every software will have it's Chinese or European fork....have a nice Day US...once again you cut yourself.
Again look at the Premier members:
There are technical reasons we don't already have a 'universal bytecode' like this. One of them is that it doesn't fit the build model of C and C++. C deliberately doesn't shield the programmer from all details of the underlying architecture, and neither does C++. For instance, the values of sizeof(long) and LONG_MAX depend on the platform, and must be known at compile-time. This is the reason LLVM bitcode cannot be used as an intermediate representation for C programs the way Java bytecode is an IR for Java programs.
IRs are already widely used where they make good technical sense. Java, .Net, Python, Lua, and Erlang, each define their own. None of them would work well as a universal intermediate representation.
Programs for the Inferno operating-system used a bytecode representation, but modern OSs don't tend to offer 'grand abstractions' like this. See this wise comment from 2015: https://news.ycombinator.com/item?id=9807777
It solves a lot of problems related to distribution of software and migration between different processor architectures.
The Huawei Harmony OS is already touting its verification and how it lets a lot of user code run in the kernel process.
Add some just in time compilation and it would be quite a thing.
+ WebAssembly just isn't efficient for translating quite some patterns to it, at least at this point, with a quite significant perf decrease. (yes, it's better than JS in general, but that's not saying much)
Back in the J2ME days there was a Swedish startup trying to sell a C and C++ version of what was basically a competitor to J2ME.
The only reason why LLVM bitcode doesn't do this is political, meaning the LLVM designers don't want to follow down this path.
I should have been more clear: I'm not saying you can't define an IR language as a target for a C compiler, and then have that IR run on various platforms. As you say, that's already been done with solutions like C++/CLI, and compiling C++ to JavaScript or to WebAssembly. My point is that this isn't the same as what Java bytecode does for Java.
When you compile Java to Java bytecode, there's no platform-sensitivity in that compilation step. You can run javac on Windows, and on FreeBSD, and you'll get identical .class files from both.
C is importantly different from Java, in two regards:
1. C permits platform-specific use of the preprocessor, so that the programmer can for instance activate a specially tailored Windows-specific version of a function if and only if the target platform is 64-bit Windows. (I'm not fond of the term conditional compilation to describe this, but it seems to have stuck.)
2. Properties of the underlying platform are revealed to the programmer at compile-time, such as in sizeof(long)
If you treat your IR as the compilation target, you have to commit to a virtual platform that might not match the underlying platform. You'll need to decide a value for sizeof(long), and the size of pointer types, etc. You can do this, sure enough, but it's presumably going to make things awkward and introduce a possible performance penalty.
More importantly though, it's also going to break the way C programmers tailor their programs for different operating systems, how they cope with the availability of different features and optional libraries, etc. Consider the build-specific details that tend to be handled by autotools. Platform-specific preprocessor decisions could also happen in any header file that you rely on.
This means it fails to act as a universal portable intermediate representation for C programs. A single universal IR blob isn't going to cope with something like this:
void initialize_graphics() {
#ifdef USE_DIRECT3D
initialize_direct3d();
#else
initialize_vulkan();
#endif
}
Depending on the platform, the function body changes completely. You could single out the IR as a distinct platform: void initialize_graphics() {
#if defined WEBASSEMBLY_BUILD
initialize_webassembly_graphics();
#elif defined USE_DIRECT3D
initialize_direct3d();
#else
initialize_vulkan();
#endif
}
Java, by design, is unable to express compile-time decisions of this sort. Compilation from .java to .class isn't 'lossy' the way compiling C is.To put all this more succinctly: with Java you get the build, with C you get a build. With Java, a .class file a function of a Java source file, whereas with C, a compiled object file is a function of both a C compilation unit and the platform.
> The only reason why LLVM bitcode doesn't do this is political, meaning the LLVM designers don't want to follow down this path.
On top of what I've mentioned, I doubt they want to be tied to perfect backward-compatibility for LLVM bitcode. Not sure that counts as political though.
Of course, Google already gave this a go, with PNaCl.
Some programmers may not like that they loose control and lack the ability to target platform specifics. But that is kind of the point.
https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pag...
> Language Environment supports z/OS (5650-ZOS).IBM Language Environment (also called Language Environment) provides common services and language-specific routines in a single runtime environment for C, C++, COBOL, Fortran (z/OS only; no support forz/OS UNIX System Services or CICS®), PL/I, and assembler applications. It offers consistent andpredictable results for language applications, independent of the language in which they are written
The IBM z/OS bytecode is called ILC.
> Language Environment eliminates incompatibilities among language-specific runtime environments.Routines call one another within one common runtime environment, eliminating the need for initialization4 z/OS: Language Environment Concepts Guide and termination of a language-specific runtime environment with each call. This makes interlanguagecommunication (ILC) in mixed-language applications easier, more efficient, and more consistent.This ILC capability also means that you can share and reuse code easily. You can write a service routine inthe language of your choice (C/C++, COBOL, PL/I, or assembler) and allow that routine to be called fromC/C++, COBOL, PL/I, or assembler applications. Similarly, vendors can write one application package inthe language of their choice, and allow the application package to be called from C/C++, PL/I, andassembler routines or from Fortran or COBOL programs.In addition, Language Environment lets you use the best language for any task. Some programminglanguages are better suited for certain tasks. Improved interlanguage communication (ILC) allows thebest language to be used for any given application task. Many programmers, each experienced in adifferent programming language, can work together to build applications with component routines writtenin a variety of languages. The enhanced ILC offered by Language Environment allows you to buildapplications with component routines written in a variety of languages. The result is code that runs faster,is less prone to errors, and is easier to maintain.
It would be quite educative for teaching programs to actually teach young generations of the capabilities of mainframes.
Of course, neither PNaCl nor IBM's ILC really speak to whether it would break 'normal' applications to switch to an IR.
[0] https://en.wikipedia.org/wiki/Google_Native_Client#Overview
Mainframes manage just fine with bytecode for C and C++.
So yes, it is political.
Right, because the preprocessor isn't used for compile-time platform-detection. It doesn't use the C idiom of #ifdef WIN32 for instance. C#'s preprocessor does far less than C's.
> Mainframes manage just fine with bytecode for C and C++.
Presumably they all agree on things like endianness, sizeof(long), whether NULL is represented with bitwise zero, etc? These aren't portable assumptions.
> So yes, it is political.
Again, I doubt they want to be tied to perfect backward-compatibility for LLVM bitcode.
https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/...
An IBM/Unisys mainframe running on PowerPC is quite different from how it was born in the late 70's, early 80's.
So how come Apple and NVidia are able to massage LLVM bitcode to serve their purposes?
Deciding that they don't want to keep backwards compatibility is definitely politics.
Thanks, I didn't know that. It doesn't really impact my point though, it just means the .Net IR is less portable than I thought. The point here is to have one portable IR for C code, after all, like Java bytecode. (Well, disregarding the other Java platforms such as Java ME, that is.)
> So how come Apple and NVidia are able to massage LLVM bitcode to serve their purposes?
I don't know specifics here but presumably they have significant control over the hardware and aren't aiming for extreme portability. Are they intending to support 32-bit, 64-bit, various endiannesses, exotic platforms that don't use 2's complement and don't represent NULL as bitwise zero, etc? All from the same IR?
Java supports all such platforms by forcing them to behave the Java way. Java's long is defined to be 64-bit and use 2's complement representation, regardless of the workings of the underlying hardware.
C supports full-speed execution on all such platforms as it permits its behaviour to vary depending on the target platform. This is part of why the C spec is so loose about how the compiler/platform may behave. What are the values of MAX_INT and MAX_LONG? The spec doesn't dictate their values, although it does give lower bounds.
You can't have it all, especially with C where even allocating an array of long requires using sizeof(long). You could mandate in your IR that long is 64-bit, but this means you've changed the behaviour of the C program when running on an LLP64 [0] platform, which must now emulate the 64-bit behaviour. There's similar trouble with pointers. If you mandate that pointers are 64-bit, you'll damage performance on 32-bit machines, unless the (native-code) compiler is somehow smart enough to optimise it back down to the native 32-bits.
And this is assuming no preprocessor trouble, which might be acceptable in a controlled environment but isn't acceptable in a universal C bytecode that can do everything C source-code can.
Again I'm not saying you can't define an IR for C for certain purposes, my issue is with a universal IR. It's not the same as defining an IR for a family of related products, as we see with GPUs and mainframes.
Could you define such a limited-portability IR for your new OS that runs on x86-64, RISC-V, and AArch64? Probably. Would it really help? I doubt it. You can already write portable C programs if you know what you're doing and do adequate testing. If you want a language that gives you robust assurances of platform-independence, you shouldn't be using C in the first place. (From our previous discussions I believe we're both of the opinion it's a bit of a pity Ada sees so little general use these days.)
It would presumably be possible to define a coding-standard a bit like MISRA C that prohibited anything platform-specific, for instance by banning general use of int and long and insisting on using the fixed-width types. It would also have the difficult job of prohibiting undefined behaviour. There's the ZZ project which does something vaguely along these lines, but it defines a whole new language that compiles to C. [1]
> Deciding that they don't want to keep backwards compatibility is definitely politics.
At the risk of a boring discussion on semantics, that doesn't sound to me like politics. Declining to be saddled with a commitment to backward compatibility, is a technical decision intended to permit future improvements.
LLVM chose a permissive licence to keep Apple happy, in contrast to GCC. That counts as politics.
[0] https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_m... (I figure you know this already, pjmlp, but it might be useful for someone else)
[1] https://github.com/aep/zz , see also https://news.ycombinator.com/item?id=22245409
1. Fork the RISC-V ISA, but brand it as an IR rather than as an ISA intended for hardware implementation
2. Port a C compiler to target your new ISA
3. Port QEMU to execute your new ISA
There you go, you can now compile C to your novel representation, and you can use QEMU to run C programs that have been compiled to it.
It allows C to support unusual architectures at full speed. If your architecture uses 36-bit arithmetic, [0] C supports that just fine: the compiler can treat int and unsigned int as 36-bit types, as the C standard permits this, and there will be no awkward conversions to and from 32-bit.
The compiler might also offer uint32_t (this is optional [1]) but it would presumably have inferior performance.
> It would have been much simpler for the programmer to just pick a datatype based on what is appropriate for the application.
It would be bad for performance to implement, say, 11 bit arithmetic on a standard architecture. It would probably only be worth it if it saved a lot of memory. You can implement this manually in C, doing bit-packing with an array, but the language itself can't easily support it, as C requires variables to be addressable.
The Ada programming language does something somewhat similar, where the programmer rarely uses a raw type like int or int32_t, instead they define a new integer type with the desired range. (The range doesn't have to start at zero, or at the equivalent of INT_MIN. It could be -1 to 13, or 9 to 1,000,000.) As well as enabling the compiler to implement out-of-bounds checks, it also permits the compiler to choose whatever representation it deems to be best. The compiler is permitted to do space-efficient bit-packing if it wants to. (As I understand it, Ada 'access types' differ from C pointers in that they aren't always native-code address values, which enables the Ada compiler to do this kind of thing.) [2]
I suspect the Ada approach is probably superior to either the C approach (int means whatever the architecture would like it to mean, roughly speaking) or the Java approach (int means a 32-bit integer that uses 2's complement, regardless of the hardware and regardless of whether you need the full range). A pity it hasn't caught on.
[0] https://en.wikipedia.org/wiki/36-bit_computing
[1] https://en.cppreference.com/w/c/types/integer
[2] https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/r...
What is a "language environment" in this context? What would be some of the mainframe language environments that support C and C++?
Mainframes use bytecode based executables since ages, you AOT to native code at installation time, when there are critical updates or hardware changes.
Only the kernel and drivers are straight native code, this is what keeps stuff from the old days running on modern mainframes, without any change to the executables, although their hardware is completely different from the 70's models.
Non-portability of bitcode is hardly an issue. OK, fix sizeof(long) to 64 bits, no big deal. GraalVM/Truffle can JIT compile bitcode to the underlying ISA which can then evolve free from backwards compatibility constraints. You can also JIT compiled Python, Ruby, R, JavaScript, Rust, FORTRAN, etc, all with the open source code that exists today.
If I were designing a new computer architecture from scratch this is the way I'd go. If you don't need to freeze or even properly document your CPU ISA it gives you way more ability to quickly deploy performance upgrades, quickly iterate on CPU designs etc. You can have a custom OS that bundles GraalVM and QEMU, for the cases where you can't recompile apps.
But in any case, I'm 100% sure that someone somewhere in China has a copy of the current ARM designs, so they will be able to continue to produce them for their domestic market no matter what happens.
Yes, that might make their products counterfeit ARM cores. But I'm not sure anyone will actually care.
Chinese industry and government will start to invest heavily on a homemade CPU architecture.
And just by the force of the sheer numbers of their internal market + strict protectionism, they can succeed.
Are there any other benefits?
Practically speaking, aren't ARM designs so widely used among the major chip manufacturers that Chinese companies/agencies are likely to have copies of important stuff anyway?
Or does the implementation of ARM designs work somehow more proprietarily (or opaquely?) than just the customers receiving files full of chip designs?
Because I imagine that the prohibition against being able to use ARM is really only meaningful to legal and royalty-paying law-abiding customers. If a rogue agent has the designs already, what's to stop them from using them?
I'd be curious to know how ARM protects the designs from just being copied, or what the mechanism here is. Or maybe their designs are useless without the supporting software, etc. ? ARM's value is the licensing of the designs and that they hold patents/copyrights, not the absolute knowledge of the designs -- is that right? Are their designs themselves that hard to copy?
* "rogue agent" can't sell products with ARM based technology inside.
* "rogue agent" can't produce ARM based chips in foreign fabs (TSMC, Samsung)
I'm guessing that NVIDIA will try to squeeze value out of this acquisition (though not as aggressively as, say, Qualcomm would), but going too far might backfire on them.
The US have exercised the same form of economic warfare (and when that fails actual warfare) for decades now, might as well take a turn.
The upside is that when mainlanders are upset, they can use their smarts to push forward RISC-V.
> South Korean chip industry officials and experts said that Nvidia’s Arm buy would intensify Nvidia’s competition with Samsung, Qualcomm and others in self-driving cars and other future technologies, while raising concerns that Arm could hike licensing fees for competitors.
Oh no, more competition! Maybe Samsung can ask its little brother, the South Korean government, to intervene.
1. https://en.wikipedia.org/wiki/Great_Wall_Peri#Fiat_Panda_cop...
My comparison with JS frameworks comes from my perception that CPU designs are all, kinda, the same. There are also a million ways to do things, but the core principles are obvious to people who study CPU design.
Yeah, right. Even if by some magic nVidia has this intention (hard to believe) it will only last right up until Trump or his successor decide to use it as a club against whatever country they decide not to like at the moment.
I was not aware that all it took for a U.S. company to profit from bypassing national security concerns, human rights protections, and weapons proliferation limits[0] was to simply open a foreign HQ or buy a company with one.
Not that Arm or Nvidia plan to do any of those things, but it sounds like a regulatory moat to me.
0: https://2009-2017.state.gov/strategictrade/overview/index.ht...
It's not enough to have a foreign HQ, but if you have a separate development organization abroad and a clear delineation between their technology and your US-developed technology, this seems very workable.
Its national security concerns keep violating laws and even the constitution. Or, take violating laws abroad and numerous international treaties. It doesn't fully implement something as basic as the Universal Declaration of Human Rights. Or, just take what Amnesty International reported already years ago about all US states violating the country's international obligations regarding accountability for police violence. As for weapons proliferation, that has to be the biggest joke of them all. It blatantly makes false claims about other countries, only to have a justification for unilateral withdrawal from treaties and expand nuclear weapon productions. Or, just take the countless wars it has started around the globe, both to make a killing on weapons sales and cynically use them as testing grounds for new weapons.
But indeed, none of all that is relevant in this particular case. Even thought the deal is bad news for a number of other reasons. Maybe first and foremost because it is a US company getting its hands on foreign assets. nVidea certainly knows how to evade taxes, so who knows how much of the deal money actually shouldn't be theirs in the first place.
That doesn't mean they need to approve the purchase - it just means they have to stall until they know the outcome of the election.
There's no chance of a trade deal being done before the election, and waving the sale through to earn Trump's favour is pointless if it's Biden they're making a trade deal with.