AccelerateHS / AccelerateHS/accelerate-llvm

Library won't utilize all gpu cores. [BUG]

Aperta
#92 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Haskell
Stelle
171
Fork
65
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**Description**
When I run a function on the gpu that should take up all available cores it doesn't and instead uses roughly 10% of them.
I'm not sure if this is a misconfiguration, or a bug.

**Steps to reproduce**

Compile the following code:
```
module Main where

import Data.Array.Accelerate as A
import Data.Array.Accelerate.LLVM.PTX as PTX
import Prelude as P

func :: Exp Double -> Exp Double
func x = do
let one = constant 1.0 :: Exp Double
one / (one + (exp (-x)))

func2 :: Acc (Vector Int) -> Acc (Vector Double) -> Acc (Vector (Int, Double))
func2 a b = A.zip a b

func3 :: Acc (Vector (Int, Double)) -> Acc (Vector (Int, Double))
func3 x = do
let (a, b) = A.unzip x
b2 = A.map (\y -> func y) b
a2 = A.map (\z -> z - (constant 1 :: Exp Int)) a
A.zip a2 b2

test :: Acc (Vector (Int, Double)) -> Acc (Scalar Bool)
test x = do
let (a, _) = A.unzip x
A.unit ((constant 1) A./= (a A.!! (constant 0)))

numCudaCores :: Int
numCudaCores = 2048 -- I have an NVidia GeForce RTX 3050 Laptop GPU, I'm pretty sure it has 2048 cores.

main :: IO ()
main = do
let arr = A.fill (constant (Z:.numCudaCores)) 1.0 :: Acc (Vector Double)
arr2 = A.fill (constant (Z:.numCudaCores)) 10000000 :: Acc (Vector Int)
func4 = A.awhile ( test ) func3 (func2 arr2 arr)
result = PTX.run func4
putStrLn (show result)
```
and then run nvtop while it's running on a linux machine and it should show that the gpu is only being utilized around 8%.
**Expected behaviour**
The code should be using all CUDA cores.

**Your environment**
OS: Arch Linux (latest version as of january 2nd 2023).
GPU: NVidia GeForce RTX 3050 Laptop GPU
GHC: 9.0.2

accelerate-llvm-ptx commit: 6f3b6ca2c693d84c43b62b066c70e14a9e73ce63
accelerate commit: 5971c5d8e4dbba28d2017e7ce422cf46a20197cb

I can't post the results of nvidia-device-query because that program isn't on my computer and I can't find any information at all about what package to install on Arch to get it.

**Additional context**

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.