Cilus
laborare est orare
The success of any new hardware architecture, concepts depends upon both the hardware implementation and software support for it. If these two things aren't in sync, the chances of success is very limited inspite of the advancement of either of them.
Remember when 1st generation X86 based DUal Core Processores (Intel Pentium D and Athlon 64 X2) were released, Windows XP wasn't even ready understand the hardware design even though concept of multithreading is very old any OS.
Same problem is present with HSA approach. Even with current generation hardware like GPU and CPU using NUMA (Non Unified Memory Access), HSA can be implemented through some programming models. But the problem is that for that we don't have very widespread support of high level programming languages like C++, Python, which is the 1st choice of system programmers. There are few special purpose languages and add ons like DirectCompute, OPenCL and CUDA; but general purpose coding with them is a pretty tough job. That;s why we only see limited type of applications like Audio/Video Encoders and Converters, Encryption, Compression etc with HSA support.
With the HUMA ( Unified Memory Access for Heterogeneous System) implementation in hardware level, software can be very easily tweaked to accomodate it. Simple way to say this: As a programmers point of view, the syetm will be just like a Multi-Core Architecture where couple of cores are of same type (CPU Cores of a Multi-Core CPU) and couple of them are of different type (The GPU Execution units). You just need to provide support for identification of the instructions to be selected by the suitable cores (Either CPU or GPU or shared by both) and don't need to think how they will handle them or distribute them internally. In Hardware, the CPU and GPU can communicate to each other by using Interrupt Controls (Interrupt are used to satll an execution unit when other is working on the same data), token passing etc.
For example, Microsoft has already launched C++ Accelerated Massive Parallelism or C++ AMP to support HSA and can be used with all the AMD Fusion APU which is the closest part of HSA design til date. With this kind of widely accepted programming languages, developers can very easily leverage the parallel processing capabilities of GPU in a UMA design. So in future, expect to see even the day to day general apps like Microsoft Word or Google Chrome to take the advantage of HUMA.
Remember when 1st generation X86 based DUal Core Processores (Intel Pentium D and Athlon 64 X2) were released, Windows XP wasn't even ready understand the hardware design even though concept of multithreading is very old any OS.
Same problem is present with HSA approach. Even with current generation hardware like GPU and CPU using NUMA (Non Unified Memory Access), HSA can be implemented through some programming models. But the problem is that for that we don't have very widespread support of high level programming languages like C++, Python, which is the 1st choice of system programmers. There are few special purpose languages and add ons like DirectCompute, OPenCL and CUDA; but general purpose coding with them is a pretty tough job. That;s why we only see limited type of applications like Audio/Video Encoders and Converters, Encryption, Compression etc with HSA support.
With the HUMA ( Unified Memory Access for Heterogeneous System) implementation in hardware level, software can be very easily tweaked to accomodate it. Simple way to say this: As a programmers point of view, the syetm will be just like a Multi-Core Architecture where couple of cores are of same type (CPU Cores of a Multi-Core CPU) and couple of them are of different type (The GPU Execution units). You just need to provide support for identification of the instructions to be selected by the suitable cores (Either CPU or GPU or shared by both) and don't need to think how they will handle them or distribute them internally. In Hardware, the CPU and GPU can communicate to each other by using Interrupt Controls (Interrupt are used to satll an execution unit when other is working on the same data), token passing etc.
For example, Microsoft has already launched C++ Accelerated Massive Parallelism or C++ AMP to support HSA and can be used with all the AMD Fusion APU which is the closest part of HSA design til date. With this kind of widely accepted programming languages, developers can very easily leverage the parallel processing capabilities of GPU in a UMA design. So in future, expect to see even the day to day general apps like Microsoft Word or Google Chrome to take the advantage of HUMA.