Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
Abstract
A computing platform may include heterogeneous processors (e.g., CPU and a GPU) to support sharing of virtual functions between such processors. In one embodiment, a CPU side vtable pointer used to access a shared object from the CPU 110 may be used to determine a GPU vtable if a GPU-side table exists. In another embodiment, a shared non-coherent region, which may not maintain data consistency, may be created within the shared virtual memory. The CPU and the GPU side data stored within the shared non-coherent region may have a same address as seen from the CPU and the GPU side. However, the contents of the CPU-side data may be different from that of GPU-side data as shared virtual memory may not maintain coherency during the run-time. In one embodiment, the vptr may be modified to point to the CPU vtable and GPU vtable stored in the shared virtual memory.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . A platform comprising:
a combination of a central processing unit (CPU) and a graphics processing unit (GPU); and a shared physical memory to be accessible to both the GPU and CPU, wherein the platform is capable of mapping the shared physical memory to a shared virtual memory accessible to both the CPU and GPU,
wherein the platform is to:
store a shared object including a plurality of virtual functions in the shared virtual memory; and
share at least one of the plurality of virtual functions between the CPU and the GPU.
2 . The platform of claim 1 , wherein the platform to share the plurality of virtual functions between the CPU and the GPU comprises a two-way communication between the CPU and the GPU.
3 . The platform of claim 1 , wherein the shared object further comprises a non-virtual function.
4 . The platform of claim 1 , wherein the shared object comprises a virtual table pointer to index a virtual function table.
5 . The platform of claim 1 , wherein the shared object comprises a CPU side virtual table pointer.
6 . The platform of claim 5 , wherein the GPU is to use the CPU side virtual table pointer to determine a GPU side virtual table.
7 . The platform of claim 6 , wherein the GPU side virtual table comprises a class name, a CPU side virtual table address, and GPU side virtual table address.
8 . The platform of claim 6 , wherein the GPU side virtual table is to support at least one of dynamically linked libraries or statically linked libraries.
9 . The platform of claim 1 , wherein the platform is further to create a shared non-coherent arena within the shared virtual memory and to copy a CPU side virtual table and a GPU side virtual table to the shared virtual memory, wherein the CPU side virtual table and the GPU side virtual table have a same address in the shared virtual memory.
10 . The platform of claim 9 , wherein the platform is further to modify a virtual table pointer to point to the same address, wherein the CPU side virtual table comprises CPU side function pointers, and wherein the GPU side virtual table comprises GPU side function pointers that are different than the CPU side function pointers.
11 . The platform of claim 10 , the platform further comprising a CPU private memory space, wherein the platform is to copy the CPU side virtual table from the CPU private memory space.Join the waitlist — get patent alerts
Track US2015113255A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.