gpt4 book ai didi

string - 如何在 Julia 中创建一个填充有字符串的 CuArray?

转载 作者:行者123 更新时间:2023-12-04 10:59:28 24 4
gpt4 key购买 nike

我有很多字符串操作要执行,我想使用 GPU 处理在 Julia 1.2.0 中实现代码。我马上就遇到了定义 CuArray 的问题,下面是一个例子。我基本上希望能够将一维字符串数组传递到 GPU 内核中。

using CUDAnative 

using CuArrays

CuArray(["1","2","3"])



Type String does not have a definite size.

Stacktrace:
[1] sizeof at .\essentials.jl:452 [inlined]
[2] CuArray{String,1,P} where P(::UndefInitializer, ::Tuple{Int64}) at C:\Users\julul\.julia\packages\CuArrays\7z7MV\src\array.jl:90
[3] Type at C:\Users\julul\.julia\packages\CuArrays\7z7MV\src\array.jl:174 [inlined]
[4] CuArray(::Array{String,1}) at C:\Users\julul\.julia\packages\CuArrays\7z7MV\src\array.jl:188
[5] top-level scope at In[24]:3

最佳答案

也许有人会有更好的主意,但这就是我会尝试做的:

using CUDAnative 
using CuArrays
using InternedStrings
vals = pointer.(intern.(["1","2","33"]))
c = CuArray(vals)

请注意,没有内化 String相同 String 的不同副本将指向不同的内存地址,并且无法进行您可能想要进行的文本挖掘。为了更清楚,请看下面的例子:
julia> CuArray(pointer.(intern.(["1","2","3"*"3"]))) == CuArray(pointer.(intern.(["1","2","33"])))
true

julia> CuArray(pointer.(["1","2","3"*"3"])) == CuArray(pointer.(["1","2","33"]))
false

关于string - 如何在 Julia 中创建一个填充有字符串的 CuArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58921014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com