A NVIDIA introduziu o CUDA Rust para o desenvolvimento de kernels de GPU na linguagem Rust.

A NVIDIA anunciou o desenvolvimento do kit de ferramentas CUDA Rust, que permite à linguagem Rust desenvolver kernels executados na GPU. O kit de ferramentas garante a segurança da memória em tempo de compilação e previne condições de corrida. No próximo ano, está previsto que o CUDA Rust seja desenvolvido a um nível adequado para projetos de produção, semelhante aos kits de ferramentas CUDA C++ e CUDA Python.

A cadeia de ferramentas CUDA Rust suporta dois modelos para o desenvolvimento de kernels paralelos: SIMT (Single Instruction, Multiple Threads) e Tile. O modelo SIMT permite a definição de baixo nível de uma única thread, bem como a inicialização e o gerenciamento de milhares dessas threads. O modelo Tile oferece um nível de abstração mais elevado, onde, em vez de gerenciar explicitamente threads individuais, são definidos algoritmos para operar em blocos de dados (tiles), e o compilador Tile IR lida com toda a manipulação de threads, sincronização de acesso, gerenciamento de memória e distribuição de dados entre os núcleos tensores.

Para desenvolvimento em Rust utilizando o modelo SIMT, está sendo desenvolvido o compilador cuda-oxide, que permite compilar código em Rust, utilizando o sistema de tipos padrão e o modelo de propriedade Rust, diretamente em instruções para execução. máquina virtual CUDA PTX (Execução Paralela de Threads). Os kernels da GPU são escritos em Rust padrão, mas executados em um ambiente no_std e só podem usar funções da biblioteca libcore e abstrações especializadas do Rust, sem acesso à biblioteca padrão do Rust (libstd).

Os kernels CUDA escritos em Rust permitem o uso de proteção de tipo (safe), o uso de blocos unsafe e o acesso a instruções de hardware de baixo nível. Para garantir a segurança, propõe-se o tipo DisjointSlice, assegurando que cada thread tenha acesso exclusivo apenas aos seus próprios dados. O código cuda-oxide é licenciado sob a licença Apache 2.0.

Para implementar o modelo Tail, propõe-se a biblioteca cutile-rs. Ela permite o uso da linguagem idiomática Rust para criar código que compila diretamente para kernels CUDA. O cutile-rs aplica as regras estritas de propriedade e empréstimo do Rust ao código executado na GPU. O kernel é implementado como um programa de thread única operando em um bloco de dados, e o compilador divide automaticamente a computação em threads e garante sua sincronização. As threads recebem acesso compartilhado a tensores imutáveis, e os tensores mutáveis ​​são particionados em blocos disjuntos para garantir acesso seguro. O código cutile-rs é distribuído sob a licença Apache 2.0.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster