This hardware feature allows the GPU to preempt shader execution in the middle of a compute wave, save the state and restore it later to resume execution. Memory for saving the state is allocated per queue in user mode and the address and size passed to the create_queue ioctl. The size depends on the number of waves that can be in flight simultaneously on a given ASIC.
Showing the changes to include/uapi/linux (1 of 8 files). Show all
Unified · Split
| @@ -58,7 +58,8 @@ struct kfd_ioctl_create_queue_args { · 57 unmodified lines | |||
| 58 | __u64 eop_buffer_address; /* to KFD */ | 58 | __u64 eop_buffer_address; /* to KFD */ |
| 59 | __u64 eop_buffer_size; /* to KFD */ | 59 | __u64 eop_buffer_size; /* to KFD */ |
| 60 | __u64 ctx_save_restore_address; /* to KFD */ | 60 | __u64 ctx_save_restore_address; /* to KFD */ |
| 61 | __u64 ctx_save_restore_size; /* to KFD */ | 61 | __u32 ctx_save_restore_size; /* to KFD */ |
| 62 | __u32 ctl_stack_size; /* to KFD */ | ||
| 62 | }; | 63 | }; |
| 63 | 64 | ||
| 64 | struct kfd_ioctl_destroy_queue_args { | 65 | struct kfd_ioctl_destroy_queue_args { |