gpt4 book ai didi

c# - CUDA .Net 比较字符串

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:35 25 4
gpt4 key购买 nike

我正在尝试比较字符串列表(每个列表中的大量元素)。有人可以帮我用 cudafy 来做吗? ?我想在那种情况下我应该使用交错的 char 数组,但我有一个 CudafyCompileException - 表达式必须具有类类型( tried this approach )。它仅适用于两个字符串 (char[])。那么我该怎么做呢?

2 个字符串的代码示例:

var km = CudafyTranslator.Cudafy();
_gpu = CudafyHost.GetDevice();
_gpu.LoadModule(km);
var strFirst = "Hello, world";
var strSecond = "Hi world";
var devResult = _gpu.Allocate<char>(strFirst.Length);
var first = strFirst.ToCharArray();
var second = strSecond.ToCharArray();
var result = new char[strFirst.Length];
var devFirst = _gpu.CopyToDevice(first);
var devSecond = _gpu.CopyToDevice(second);
_gpu.Launch(N, 1).CompareStrings(devFirst, devSecond, devResult);
_gpu.CopyFromDevice(devResult, result);
var hostStr = new string(result);
Console.WriteLine(hostStr);

以及方法本身:

[Cudafy]
public static void CompareStrings(GThread thread, char[] c, char[] b, char[] result)
{
int tid = thread.blockIdx.x;
if (tid < c.Length)
{
if (c[tid] == b[tid])
{
result[tid] = c[tid];
}
}
}

最佳答案

  • 代替 c.Length 将长度作为参数传递
  • 小心如果你使用 Unicode 字符,那 2 个字节

关于c# - CUDA .Net 比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361603/

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