小编Nik*_*a K的帖子

CUDA并行化嵌套for循环

我是CUDA的新手.我试图并行化以下代码.现在它坐在内核上但根本没有使用线程,因此很慢.我尝试使用这个答案但到目前为止无济于事.

内核应该生成前n个素数,将它们放入device_primes数组中,稍后从主机访问该数组.代码是正确的,在串行版本中工作正常,但我需要加快速度,也许使用共享内存.

//CUDA kernel code
__global__ void generatePrimes(int* device_primes, int n) 
{
//int i = blockIdx.x * blockDim.x + threadIdx.x;
//int j = blockIdx.y * blockDim.y + threadIdx.y;

int counter = 0;
int c = 0;

for (int num = 2; counter < n; num++)
{       
    for (c = 2; c <= num - 1; c++)
    { 
        if (num % c == 0) //not prime
        {
            break;
        }
    }
    if (c == num) //prime
    {
        device_primes[counter] = num; …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop cuda gpu nested

6
推荐指数
1
解决办法
5374
查看次数

位置算法之间的最短路径

我需要找到两个地点之间的最短路线.详细说明:

我得到一个包含3列的excel文件:city1,city2,它们之间的距离.条件是如果city1和city2之间有一条路线,那么city2和city1之间就有一条路线.

该文件有多行,任务是读取它并根据城市X和城市Y之间的距离确定最短路径.但是,在表格中,路径可能如下所示:

...

X,N,100

X,M,200

你,Y,50

X,U,20

...

I. e.没有从X到Y的直接路径,问题的答案是X - > U - > Y = 20 + 50 = 70,这是最短的距离.在这种形式中,在要求出发和到达点之间可能存在许多位置.

UI要求离开,目的地并输出它们之间的最短路径.

我希望我能够很好地解释它以获得这个想法.我试图在C#中解决这个问题,但我更希望找到一种通用的方法,一种解决这个问题的算法.我意识到它可能与旅行推销员问题有些相关,但我无法应用它.

任何方向/帮助/代码样本赞赏.

c# algorithm

1
推荐指数
1
解决办法
1603
查看次数

标签 统计

algorithm ×1

c# ×1

c++ ×1

cuda ×1

for-loop ×1

gpu ×1

nested ×1