Em sua jornada em direção às GPUs Intel Xe, que devem ser lançadas inicialmente no próximo ano, na forma de Ponte Vecchio, há cerca de um mês, a Intel publicou patches implementando o suporte à Memória Virtual Compartilhada para o driver gráfico do Linux. Esses patches do SVM agora foram revisados para uma análise mais aprofundada, tornando-o potencial para o Linux 5.6, caso tudo pareça bom. Assim, a Intel revisa o suporte à memória virtual compartilhada para seu driver de gráficos Linux
O suporte à memória virtual compartilhada permite um único espaço de endereço para lidar com threads que operam na memória discreta suportada por CPU e GPU. O SVM é importante para o OpenCL, oneAPI e outros modernos modelos de programação baseados em ponteiro. O suporte SVM da Intel é construído sobre a infraestrutura HMM (Heterogeneous Memory Management) do kernel Linux.
Intel revisa o suporte à memória virtual compartilhada para seu driver de gráficos Linux
A Memória Virtual Compartilhada (SVM) permite que o programador use uma única espaço de endereço que será compartilhado entre threads em execução em CPUs e GPUs. Abstrai para longe do usuário a localização da memória de suporte e, portanto, simplifica o modelo de programação do usuário. O SVM suporta dois tipos de métodos de alocação de memória virtual. O alocador de tempo de execução requer que o driver forneça alocação de memória e interface de gerenciamento, como a interface do objeto de buffer (BO). Considerando que o alocador de sistema faz uso da alocação de memória padrão do SO e suporte de gerenciamento como malloc.
Os 13 patches em seu formulário revisado, atualiza o uso da API do HMM e aborda vários itens levantados durante a rodada anterior de revisão de código. Várias correções também foram incorporadas. O driver gráfico Intel “i915” Linux suporta o sistema SVM e o alocador de tempo de execução com esse código.
Vamos ver como é a segunda rodada da revisão do Intel SVM para ver se há chances de se unir ao DRM-Next nas próximas semanas para o Linux 5.6 no início do próximo ano ou se pode ser arrastado para outro ciclo de lançamento do kernel.