当前位置: 首页>>代码示例>>C++>>正文


C++ cudaColorSpinorField::packGhost方法代码示例

本文整理汇总了C++中cudaColorSpinorField::packGhost方法的典型用法代码示例。如果您正苦于以下问题:C++ cudaColorSpinorField::packGhost方法的具体用法?C++ cudaColorSpinorField::packGhost怎么用?C++ cudaColorSpinorField::packGhost使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cudaColorSpinorField的用法示例。


在下文中一共展示了cudaColorSpinorField::packGhost方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: exchangeFacesStart

void FaceBuffer::exchangeFacesStart(cudaColorSpinorField &in, int parity,
				    int dagger, int dir, cudaStream_t *stream_p)
{
  if(!commDimPartitioned(dir)){
    return ;
  }

  in.allocateGhostBuffer();   // allocate the ghost buffer if not yet allocated
  
  stream = stream_p;
  
  int back_nbr[4] = {X_BACK_NBR, Y_BACK_NBR, Z_BACK_NBR,T_BACK_NBR};
  int fwd_nbr[4] = {X_FWD_NBR, Y_FWD_NBR, Z_FWD_NBR,T_FWD_NBR};
  int uptags[4] = {XUP, YUP, ZUP, TUP};
  int downtags[4] = {XDOWN, YDOWN, ZDOWN, TDOWN};
  
  // Prepost all receives
  recv_request1[dir] = comm_recv_with_tag(pageable_back_nbr_spinor[dir], nbytes[dir], back_nbr[dir], uptags[dir]);
  recv_request2[dir] = comm_recv_with_tag(pageable_fwd_nbr_spinor[dir], nbytes[dir], fwd_nbr[dir], downtags[dir]);
  
  // gather for backwards send
  in.packGhost(back_nbr_spinor_sendbuf[dir], dir, QUDA_BACKWARDS, 
	       (QudaParity)parity, dagger, &stream[2*dir + sendBackStrmIdx]); CUERR;  
  
  // gather for forwards send
  in.packGhost(fwd_nbr_spinor_sendbuf[dir], dir, QUDA_FORWARDS, 
	       (QudaParity)parity, dagger, &stream[2*dir + sendFwdStrmIdx]); CUERR;
}
开发者ID:fwinter,项目名称:quda,代码行数:28,代码来源:face_mpi.cpp

示例2: exchangeFacesPack

void FaceBuffer::exchangeFacesPack(cudaColorSpinorField &in, int parity,
				   int dagger, int dir, cudaStream_t *stream_p)
{
  int dim = dir/2;
  if(!commDimPartitioned(dim)) return;

  in.allocateGhostBuffer();   // allocate the ghost buffer if not yet allocated
  stream = stream_p;

  if (dir%2==0) { // sending backwards
#ifdef QMP_COMMS
    // Prepost receive
    QMP_start(mh_from_fwd[dim]);
#endif
    // gather for backwards send
    in.packGhost(dim, QUDA_BACKWARDS, (QudaParity)parity, dagger, &stream[2*dim+sendBackStrmIdx]);  
  } else { // sending forwards

#ifdef QMP_COMMS
    // Prepost receive
    QMP_start(mh_from_back[dim]);
#endif
    // gather for forwards send
    in.packGhost(dim, QUDA_FORWARDS, (QudaParity)parity, dagger, &stream[2*dim+sendFwdStrmIdx]);
  }
}
开发者ID:jpfoley,项目名称:quda,代码行数:26,代码来源:face_qmp.cpp

示例3: pack

void FaceBuffer::pack(cudaColorSpinorField &in, int parity,
		      int dagger, int dir, cudaStream_t *stream_p)
{
  int dim = dir/2;
  if(!commDimPartitioned(dim)) return;

  in.allocateGhostBuffer();   // allocate the ghost buffer if not yet allocated  
  stream = stream_p;

  if (dir%2==0){ // backwards send
    in.packGhost(dim, QUDA_BACKWARDS, (QudaParity)parity, dagger, &stream[2*dim + sendBackStrmIdx]);
  } else { // forwards send
    in.packGhost(dim, QUDA_FORWARDS, (QudaParity)parity, dagger, &stream[2*dim + sendFwdStrmIdx]);
  }
}
开发者ID:alexstrel,项目名称:quda,代码行数:15,代码来源:face_mpi.cpp

示例4: pack

void FaceBuffer::pack(cudaColorSpinorField &in, int parity, int dagger, int dim, cudaStream_t *stream_p)
{
  if(!commDimPartitioned(dim)) return;

  in.allocateGhostBuffer();   // allocate the ghost buffer if not yet allocated
  stream = stream_p;

  in.packGhost(dim, (QudaParity)parity, dagger, &stream[Nstream-1]);  
}
开发者ID:kpetrov,项目名称:quda,代码行数:9,代码来源:face_qmp.cpp


注:本文中的cudaColorSpinorField::packGhost方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。