Feature request: global "Fast Math" flag
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece localizando a opção global ftz existente do CudaBuilder e revisando como fadd_fast e intrinsics semelhantes são expostos. Compare esse comportamento com a semântica de --use_fast_math do NVCC; considera-se concluído quando for estabelecido se uma opção global fast_math pode ser adicionada sem alterar o comportamento existente de opt-in para matemática IEEE estrita.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
With NVCC, I can use the flag --use_fast_math to enable algebraic optimisations globally when compiling a file. The only way I found to enable such optimisations in Rust-CUDA is to use the fadd_fast intrinsics (and similar). The typical reasoning for using this approach instead of a global "fast math" flag is that some math functions may rely on strict adherence to IEEE float semantics, so using a global "fast math" flag might silently break these. However, CudaBuilder already has a global ftz flag which may already break such functions. Therefore, perhaps it makes sense to also add a global fast_math flag, given that it's ok to globally opt-in to breaking IEEE anyway via ftz?
I'm happy to help with the implementation of this
- Linguagem predominante
- Rust
- Estrelas
- 5.4k
- Forks
- 251
- Merge médio
- 30min
- PRs com merge (30d)
- 1
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Rust-GPU/rust-cuda
-
`dynamic_shared_mem` overlaps a kernel's static shared memory (the extern symbol is declared with a size)Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Default NvvmArch::Compute75 silently produces InvalidPtx on pre-Turing GPUs (Pascal/Maxwell/Volta)Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
-
A `#[address_space(shared)]` static is stored with a generic `st.u32` instead of `st.shared`, corrupting memory — two identically-declared siblings lower differentlyTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
-
Array parameters lose alignment metadata and ICE on >16 byte alignmentsTalvez já em andamento @Snehal-Reddy assumiu há 177 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
Todas as issues de Rust-GPU/rust-cuda
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
FavioVazquez/mollify#62 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 61/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
fendouai/awesome-deepseek-harness#125 ·
Mantenedores costumam responder em até 4 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
rust-embedded/heapless#694 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia