A method comprising: translating, by a first processing unit (110, 210), a virtual memory address to a physical memory address using a common page table (232, 332) stored in a memory, wherein the first processing unit comprises a central processing unit; accessing, by the first processing unit, a memory chunk (334A-N) identified by the physical memory address; translating, by a second processing unit (120, 220), the virtual memory address to the physical memory address using the common page table stored in the memory, wherein the second processing unit comprises a graphics processing unit; accessing, by the second processing unit, the memory chunk identified by the physical memory address; translating, by a third processing unit, a second virtual memory address to a physical memory address using the common page table stored in the memory; accessing, by the third processing unit, a memory chunk identified by the physical memory address; wherein the common page table is common to the first processing unit, the second processing unit, and the third processing unit, wherein the first processing unit comprises a first memory management unit, MMU, and wherein the first MMU is configured to access the common page table, wherein the second processing unit and the third processing unit share an input/output MMU, IOMMU, and wherein the IOMMU is configured to access the common page table, wherein the common page table stores virtual memory addresses to physical memory addresses mapping for memory chunks accessed by a job of an application, wherein the common page table comprises a page entry that the first processing unit (110, 210) and the second processing unit (120, 220) and the third processing unit use to access the memory chunk (334A-N), wherein the page entry comprises a first set of attribute bits (352A-N) that defines accessibility of the memory chunk by the first processing unit, a second set of attribute bits (354A-N) that defines accessibility of the same memory chunk by the second processing unit, a third set of attribute bits (356A-N) that defines accessibility of the same memory chunk by the third processing unit, and physical address bits (358A-N) that define a physical address of the memory chunk, wherein the accessibility of the memory chunk by the first processing unit, as defined by the first set of attribute bits, is different than the accessibility of the memory chunk by the second processing unit, as defined by the second set of attribute bits, and wherein, based on the first set of attributes, the first processing unit has read access and write access to the memory chunk, and wherein based on the second set of attributes the second processing unit has read-only access to the memory chunk. translating, by a first processing unit (110, 210), a virtual memory address to a physical memory address using a common page table (232, 332) stored in a memory, wherein the first processing unit comprises a central processing unit; accessing, by the first processing unit, a memory chunk (334A-N) identified by the physical memory address; translating, by a second processing unit (120, 220), the virtual memory address to the physical memory address using the common page table stored in the memory, wherein the second processing unit comprises a graphics processing unit; accessing, by the second processing unit, the memory chunk identified by the physical memory address; translating, by a third processing unit, a second virtual memory address to a physical memory address using the common page table stored in the memory; accessing, by the third processing unit, a memory chunk identified by the physical memory address; wherein the common page table is common to the first processing unit, the second processing unit, and the third processing unit, wherein the first processing unit comprises a first memory management unit, MMU, and wherein the first MMU is configured to access the common page table, wherein the second processing unit and the third processing unit share an input/output MMU, IOMMU, and wherein the IOMMU is configured to access the common page table, wherein the common page table stores virtual memory addresses to physical memory addresses mapping for memory chunks accessed by a job of an application, wherein the common page table comprises a page entry that the first processing unit (110, 210) and the second processing unit (120, 220) and the third processing unit use to access the memory chunk (334A-N), wherein the page entry comprises a first set of attribute bits (352A-N) that defines accessibility of the memory chunk by the first processing unit, a second set of attribute bits (354A-N) that defines accessibility of the same memory chunk by the second processing unit, a third set of attribute bits (356A-N) that defines accessibility of the same memory chunk by the third processing unit, and physical address bits (358A-N) that define a physical address of the memory chunk, wherein the accessibility of the memory chunk by the first processing unit, as defined by the first set of attribute bits, is different than the accessibility of the memory chunk by the second processing unit, as defined by the second set of attribute bits, and wherein, based on the first set of attributes, the first processing unit has read access and write access to the memory chunk, and wherein based on the second set of attributes the second processing unit has read-only access to the memory chunk.