小编Eht*_*ahi的帖子

CUDA中的Dijkstra算法

我在编写这段CUDA代码时遇到了麻烦。这应该是Dijkstra算法的CUDA实现。代码如下:

    __global__ void cuda_dijkstra_kernel_1(float* Va, int* Ea, int* Sa, float* Ca, float* Ua, char* Ma, unsigned int* lock){

        int tid = blockIdx.x;
        if(Ma[tid]=='1'){
            Ma[tid] = '0';
            int ind_Ea = Sa[tid * 2];
            int num_edges = Sa[(tid * 2) + 1];
            int v;
            float wt = 0;
            unsigned int leaveloop;
            leaveloop = 0u;
            while(leaveloop==0u){
                if(atomicExch(lock, 1u) == 0u){
                    for(v = 0; v < num_edges; v++){
                        wt = (Va[tid * 3] - Va[Ea[ind_Ea + v] * 3]) * (Va[tid * …
Run Code Online (Sandbox Code Playgroud)

parallel-processing cuda graph dijkstra

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

标签 统计

cuda ×1

dijkstra ×1

graph ×1

parallel-processing ×1