Questions about the workflow of NVIDIA GPU driver #508
Unanswered
shumeigiku
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi all,
I am a novice in studying NVIDIA GPU driver. I want to ask questions about the driver's workflow when handling a GPU application.
Based on my little knowledge of GPU driver, I list the questions as follows. I would appreciate it if you would like to answer them!
(Also, if you don't want to answer it, could you give me some manuals about the NVIDIA driver?)
Questions about the task scheduling
1.1 Which function in the GPU driver receives the GPU tasks submitted from the user-level APIs (e.g., a
clEnqueueNDRangeKernel()
in OpenCL)?1.2 When receiving the GPU tasks, how does the GPU driver schedule tasks? (I mean, decide which task will execute first) Do we have some policy on schedule?
1.3 How to submit the GPU task to the GPU hardware? I know some AXI-bus GPUs will write the
start
commands to a fixed GPU MMIO, will the NVIDIA driver write similar commands to the GPU MMIO in the PCIe port?1.4 When GPU hardware finishes the computing, how does the GPU notify the NVIDIA driver? Which function will handle it?
Questions about the memory management
2.1 NVIDIA GPU has dedicated memory to store and compute the data. Thus, how does the GPU driver send the data from the CPU to GPU? And how does the driver fetch it back to the CPU side? Which functions can I refer to?
2.2 The GPU memory may be separated for multiple GPU tasks. If true, will they be arranged by the same GPU page table, or a different one? Moreover, if the GPU wants to switch to execute a new task, how to update the GPU page table?
I'm looking forward to hearing back from you!
shumeigiku
Beta Was this translation helpful? Give feedback.
All reactions