簡體   English   中英

NumaPro Cuda設備功能-返回多個陣列和本地內存

[英]NumaPro Cuda Device Function - Return multiple Arrays and local memory

如果您想編寫一個返回多個數組的設備函數,是否有人知道cuda.jit裝飾器的正確語法是什么?

如果我的設備函數應返回一個float並具有兩個整數參數,則我的裝飾器將是:

@cuda.jit('float64(int64,int64)', device=True, inline=True)

現在,我希望函數采用兩個整數參數和兩個浮點數,並返回2個浮點數數組和2個整數數組,它們的長度都相同(在3到5之間),具體取決於輸入參數。 我怎么做? 正確嗎:

@cuda.jit(restype=[float64[:], int64[:], float64[:], int64[:]], argtypes=[int64, int64, float64, float64], device=True, inline = True)

同樣在我的函數中,我將使用以下cuda.local.array()創建要返回的數組: cuda.local.array()由於我使用inline = True,我懷疑這將起作用並且只能由相應線程訪問數組,對嗎?

現在,我希望函數采用兩個整數參數和兩個浮點數,並返回2個浮點數數組和2個整數數組

您真正要說的是,您希望JIT內核返回一個元組(兩個數組)。 不幸的是,在nopython前端中,我認為這是不合法的。 nopython中沒有對象支持,因此您無法實例化並返回一個元組對象。

同樣在我的函數中,我將使用以下命令創建要返回的數組:cuda.local.array()

不幸的是,這也不被支持。 返回作為參數傳遞給函數的數組是合法的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM