Hi,
I have been reading the ongoing discussion about what to do about AMD DC
(Display Core) with great interest since I have started to put more time into
developing OpenChrome DRM for VIA Technologies Chrome IGP.
I particularly enjoyed reading what Tony Cheng wrote about what is going on
inside AMD Radeon GPUs.
As a graphics stack developer, I suppose I am still someone somewhat above a
beginner level, and Chrome IGP might be considered garbage graphics to some (I
do not really care what people say or think about it.), but since my background
is really digital hardware design (self taught) rather than graphics device
driver development, I will like to add my 2 cents (U.S.D.) to the discussion.
I also consider myself an amateur semiconductor industry historian, and in
particular, I have been a close watcher of Intel's business / hiring practice
for many years.
For some, what I am writing may not make sense or even offend some (my guess
will be the people who work at Intel), but I will not pull any punches, and if
you do not like what I write, let me know. (That does not mean I will
necessarily take back my comment even if it offended you. I typically stand
behind what I say, unless it is obvious that I am wrong.)
While my understanding of DRM is still quite primitive, my simplistic
understanding of why AMD is pushing DC is due to the following factors.
1) AMD is understaffed due to its precarious financial condition it is in right
now (i.e., < $1 billion CoH and losing 7,000 employees since Year 2008 or so)
2) The complexity of the next generation ASIC is only getting worse due to the
continuing process scaling = more transistors one has to use (i.e., TSMC 28 nm
to GF 14 nm to probably Samsung / TSMC 10 nm or GF 7 nm)
3) Based on 1 and 2, unless the design productively can be improved, AMD will
be late to market, and this can be the possible end to AMD as a corporation
4) Hence, in order to meet TtM and improve engineer productivity, AMD needs to
reuse the existing pre-silicon / post-silicon bring up test code and share the
code with the Windows side of the device driver developers
5) In addition, power is already the biggest design challenge, and very precise
power management is crucial to the performance of the chip (i.e., it's not all
about the laptop anymore, and desktop "monster" graphics cards also need power
management for performance reasons, in order to manage heat generation)
6) AMD Radeon is really running an RTOS (Real Time Operating System) inside the
GPU card, and they want to put the code to handle initialization / power
management closer to the GPU rather than from the slower response x86 (or any
other general purpose) microprocessor
Since I will probably need to obtain "favors" down the road when I try to get
OpenChrome DRM mainlined, I probably should not go into what I think of how
Intel works on their graphics device driver stack (I do not mean to make this
personal, but Intel is the "other" open source camp in the OSS x86 graphics
world, so I find it a fair game to discuss the approach Intel takes from
semiconductor industry perspective. I am probably going to overly generalize
what is going on, so if you wanted to correct me, let me know.), but based on
my understanding of how Intel works, Intel probably has more staffing resources
than AMD when it comes to graphics device driver stack development. (and on the
x86 microprocessor development side)
Based on my understanding of where Intel stands financially, I feel like Intel
is standing on very thin ice due to the following factors, and I will predict
that they will eventually adopt AMD DC like design concept. (i.e., use of a HAL)
Here is my logic.
1) PC (desktop and laptop) x86 processors are not selling very well, and my
understanding is that since Year 2012 peak, x86 processor shipment is down 30%
as of Year 2016 (I will say around $200 ASP)
2) Intel's margins are being propped up by the unnaturally high data center
marketshare (99% for x86 data center microprocessors) and very high data center
x86 processor ASP (Average Selling Price) of $600 (Up from $500 a few years ago
due to AMD screwing up the Bulldozer microarchitecture. More on this later.)
3) Intel did a significant layoff in April 2016 where they targeted older (read
"expensive"), experienced engineers
4) Like Cisco Systems (notorious for their annual summer time 5,000 layoff),
Intel then turns around and goes in a hiring spree hiring from many graduate
programs of U.S. second and third tier universities, bringing down the overall
experience level of the engineering departments
5) While AMD is financially in a desperate shape, it will likely have one last
chance in Zen microarchitecture to get back into the game (Zen will be the last
chance for AMD, IMO.)
6) Since AMD is now fabless due to divestiture of the fabs in Year 2009
(GLOBALFOUNDRIES), it no longer has the financial burden of having to pay for
the fab, whereas Intel "had to" delay 10 nm process deployment to 2H'17 due to
weak demand of 14 nm process products and low utilization of 14 nm process (Low
utilization delays the amortization of 14 nm process. Intel historically
amortized the given process technology in 2 years. 14 nm is starting to look
like 2.5 to 3 years due to yield issues they encountered in 2014.)
7) Inevitably, the magic of market competition will drag down Intel ASP (both
PC and data center) since Zen microarchitecture is a rather straight forward
x86 microarchitectural implementation (i.e., not too far apart from Skylake),
hence, their low 60% gross margin will be under pressure from AMD starting in
Year 2017.
8) Intel overpaid for Altera (a struggling FPGA vendor where the CEO probably
felt like he had to sell the corporation in order to cover up the Stratix 10
FPGA development screw up of missing the tape out target date by 1.5 years) by
$8 billion, and the next generation process technology is getting ever more
expensive (10 nm, 7 nm, 5 nm, etc.)
9) In order to "please" Wall Street, Intel management will possibly do further
destructive layoffs every year, and if I were to guess, will likely layoff
another 25,000 to 30,000 people over the next 3 to 4 years
10) Intel has already lost the experienced engineers over the past layoffs,
replacing them with far less experienced engineers hired relatively recently
from mostly second and third tier U.S. universities
11) Now, with 25,000 to 30,000 layoff, the management will force the software
engineering side to reorganize, and Intel will be "forced" to come up with ways
to reuse their graphics stack code (i.e., sharing more code between Windows and
Linux)
12) Hence, maybe a few years from now, Intel people will have to do something
similar to AMD DC, in order to improve their design productivity since they no
longer can throw people at the problem (Their tendency to overhire new college
graduates since they are cheaper, and this allowed them to throw people at the
problem relatively cheaply until recently. High x86 ASP also allowed them to do
this as well, and they got too used to this for too long. They will not be able
to do this in the future. In the meantime, their organizational experience
level is coming down due to hiring too many NCGs and laying off too many
experienced people at the same time.)
I am sure there are people who are not happy reading this, but this is my
harsh, honest assessment of what Intel is going through right now, and what
will happen in the future.
I am sure I will be effectively blacklisted from working at Intel for writing
what I just wrote (That's okay since I am not interested in working at Intel.),
but I came to this conclusion based on various people who used to work at Intel
told me and observing the hiring practice of Intel for a number of years.
In particular, one person who worked on Intel 740 project (i.e., the long
forgotten discrete AGP graphics chip from 1998) on the technical side has told
me that Intel is really terrible at IP (Intellectual Property) core reuse, and
Intel frequently redesigns too many portions of their ASICs all the time.
Based on that, I am not too surprised to hear that Intel does Windows and Linux
graphics device driver stack development separately. (That's what I read.)
In other words, Intel is bloated from a staffing point of view. (I do not
necessarily like people to lose jobs, but compared to AMD and NVIDIA, Intel is
really bloated. The same person who worked on the Intel 740 project told me
that Intel employee productivity is much lower than their competitors like AMD
and NVIDIA on a per employee basis, and they have not been able to fix this for
years.)
Despite the constant layoffs, Intel's employee count has not really gone down
for the past few years (it is staying around 100,000 for the past 4 years), but
eventually Intel will have to get rid of people in absolute numbers.
Intel also heavily relies on its "shadow" workforce of interns (from local
universities, especially the foreign master's degree students desperate to pay
off part of their high out of state tuition) and contractors / consultants, so
their "real" employee count is probably closer to 115,000 or 120,000.
I get Intel related contractor / consultant position "unsolicited" e-mails from
recruiters possibly located 12 time zones away from where I reside (please do
not call me a racist for pointing this out since I find this so weird as a U.S.
citizen) almost every weekday (M-F), and I am always surprised at the type of
work Intel wants contractors to work on.
Many of the positions they want people to work are highly specialized stuff (I
saw a graphics device driver contract position recently.), and they have been
like this for several years already.
I no longer bother with Intel anymore based on this since they appear to not
want to commit to proper employment of highly technical people.
Going back to the graphics world, my take is, Intel will have to get used to
doing the same with far fewer people, and they will need to change their
corporate culture of throwing people at the problem very soon since their x86
ASP will be crashing down fairly soon, and AMD will likely never repeat the
Bulldozer microarchitecture screw up again. (Intel got lucky when former IBM
PowerPC architects AMD hired around Year 2005 screwed up the Bulldozer. Speed
Demon design is a disaster in a power constrained post-90 nm process node. They
tried to compensate for Bulldozer's low IPC with high clock frequency. Intel
learned a painful lesson about power with NetBurst microarchitecture between
Year 2003 to 2005. Also, then AMD management seem to have really believed in
the many-core concept too seriously. AMD had to live with the messed up
Bulldozer for 10+ years with disastrous financial results.)
I do understand that what I am writing isn't terribly technical in nature
(it is more like corporate strategy stuff business / marketing side people
worry about), but I feel like what AMD is doing is quite logical. (i.e., using
higher abstraction level for initialization / power management, and code reuse)
Sorry for the off topic assessment of Intel (i.e., hiring practice stuff, x86
stuff), and based on the subsequent messages, it appears that DC can be
rearchitected to satisfy Linux kernel developers, but overall, I feel like
there is a lack of appreciation for the concept of design reuse in this case
even though in ASIC / FPGA design world, this is very normal. (It has been like
this since the mid-'90s when ASIC engineers had to start doing this regularly.)
AMD side people appeared to have been trying to apply this concept to the
device driver side as well.
Considering AMD's meager staffing resources (currently approximately 9,000;
less than 1/10 of Intel although Intel owns many fabs and product lines, so the
actual developer staffing disadvantage is probably more like 1:3 to 1:5 ratio),
I am not too surprised to read that it is trying to improve their productivity
where they can, and combining some portions of Windows and Linux code makes
sense.
I would imagine that NVIDIA is going something like this already. (but closed
source)
Again, I will almost bet that Intel will adopt AMD DC like concept in the next
few years.
Let me know if I was right in a few years.
Regards,
Kevin Brace
The OpenChrome Project maintainer / developer