Как реализовать SM-разделение для библиотек CUDA (CUBLAS/CUFFT)
Я пытаюсь реализовать разделение SM для библиотек поставщиков cuda. Возможным решением для этого является использование привязки к графическому процессору, вызывая API-интерфейс драйвера cuda.cuCtxCreate_v3
как это. Однако библиотеки поставщиков имеют для них собственные контексты и дескрипторы. Если яcuCtxSetCurrent
контекст со сходством, а затемcublasCreate(&handle)
, будет ошибка сегментации. Как я могу использовать функцию сходства для контекстов библиотек этих поставщиков? Можно ли «привязать» контекст к другому? Или есть другие решения для достижения изоляции SM для библиотек cuda?
Кстати, для этого я провел несколько экспериментов, чтобы выяснить, как cublas вызывает API драйвера cuda. После подключения API я не нашел никаких доказательств того, что функции cublas (например, cublasGemmEx) будут вызыватьcuLaunchKernel
(я считаю, что каждый вызов ядра в конечном итоге сводится к вызову API драйвера). Так как же cublas манипулирует API-интерфейсами драйверов?