C++ Coder

HCP高性能计算架构,实现,编译器指令优化,算法优化, LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPI

C++博客 首页 新随笔 联系 聚合 管理
  98 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
        __kernel  
          __attribute__((reqd_work_group_size(NUM_WGS_RMQMIN,
1,1)))  
          
void rmq_levelMin(global int* gSparseTable, int blkSize, int level, int numBlocks)    
         {    
          u32 gIdx 
= GET_GLOBAL_IDX;    
          
if(gIdx >= numBlocks) return;     
          
int startIdx = numBlocks*(level);    
          
int calWi=1<<level;    
          
int flatSTIdxCmp2 = ((gIdx+calWi<numBlocks)?(gIdx+calWi):gIdx);    
          gSparseTable[gIdx
+numBlocks*(level+1)] = (gSparseTable[gIdx+startIdx] < gSparseTable[flatSTIdxCmp2+startIdx])?gSparseTable[gIdx+startIdx] : gSparseTable[flatSTIdxCmp2+startIdx];    
         }    
posted on 2012-12-19 20:48 jackdong 阅读(231) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理