JuliaSIMD / JuliaSIMD/LoopVectorization.jl

Support vectorizing `rand`?

Ouverte
#281 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Julia
Étoiles
789
Forks
73
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I have no idea if it is possible to vectorize `rand`.

I hope for a usage like below:

```julia
julia> using LoopVectorization

julia> m = zeros(Float32, 4,4)
4×4 Matrix{Float32}:
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0

julia> a = rand(Float32, 4,4)
4×4 Matrix{Float32}:
0.251334 0.409923 0.591477 0.04535
0.4116 0.52253 0.34138 0.870923
0.24401 0.116969 0.583924 0.0549548
0.528378 0.898528 0.519574 0.172627

julia> b = rand(Float32, 4,4)
4×4 Matrix{Float32}:
0.874233 0.263186 0.000970364 0.411874
0.0680491 0.951124 0.803958 0.197752
0.669292 0.996646 0.0915098 0.652465
0.395592 0.875268 0.601194 0.518282

julia> @avxt for i in eachindex(m)
m[i] = rand(a[i]:1.0f3:b[i])
end
```

I have tried `VectorizedRNG` but I did not find out how to set boundries.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par la boucle @avxt et l’approche VectorizedRNG mentionnées dans l’issue, puis examinez comment LoopVectorization gère les appels à rand et les bornes. Clarifiez le comportement attendu des bornes pour chaque élément des tableaux a et b. Le travail est terminé lorsque la boucle présentée peut générer des valeurs aléatoires bornées grâce à la vectorisation, avec des tests couvrant l’utilisation prise en charge.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
julia
Domaine
performance
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.