Révision 219 TrouNoir/TrouNoir.py

TrouNoir.py (revision 219)
806 806
                      float ExternalRadius,float Angle,
807 807
                      int Line)
808 808
{
809
  uint xi=(uint)blockIdx.x;
810
  uint yi=(uint)blockIdx.y;
811
  uint sizex=(uint)gridDim.x*blockDim.x;
812
  uint sizey=(uint)gridDim.y*blockDim.y;
809
   uint xi=(uint)(blockIdx.x*blockDim.x+threadIdx.x);
810
   uint yi=(uint)(blockIdx.y*blockDim.y+threadIdx.y);
811
   uint sizex=(uint)gridDim.x*blockDim.x;
812
   uint sizey=(uint)gridDim.y*blockDim.y;
813
//  uint xi=(uint)blockIdx.x;
814
//  uint yi=(uint)blockIdx.y;
815
//  uint sizex=(uint)gridDim.x*blockDim.x;
816
//  uint sizey=(uint)gridDim.y*blockDim.y;
813 817

  
814 818
  // Perform trajectory for each pixel
815 819

  
......
892 896
                       int Line)
893 897
{
894 898
   // Integer Impact Parameter ID 
895
   int bi=blockIdx.x;
899
   int bi=blockIdx.x*blockDim.x+threadIdx.x;
896 900
   // Integer points on circle
897
   int i=blockIdx.y;
901
   int i=blockIdx.y*blockDim.y+threadIdx.y;
898 902
   // Integer Impact Parameter Size (half of image)
899 903
   int bmaxi=gridDim.x*blockDim.x;
900 904
   // Integer Points on circle
901 905
   int imx=gridDim.y*blockDim.y;
902 906

  
907

  
908
   // Integer Impact Parameter ID 
909
//   int bi=blockIdx.x;
910
   // Integer points on circle
911
//   int i=blockIdx.y;
912
   // Integer Impact Parameter Size (half of image)
913
//   int bmaxi=gridDim.x*blockDim.x;
914
   // Integer Points on circle
915
//   int imx=gridDim.y*blockDim.y;
916

  
903 917
   // Perform trajectory for each pixel
904 918

  
905 919
  float m,rs,ri,re,tho;
......
971 985
                           int Line)
972 986
{
973 987
  // Integer Impact Parameter ID 
974
  int bi=blockIdx.x;
988
  //  int bi=blockIdx.x;
989
  int bi=blockIdx.x*blockDim.x+threadIdx.x;
975 990
  // Integer Impact Parameter Size (half of image)
976 991
  int bmaxi=gridDim.x*blockDim.x;
977 992

  
......
1182 1197

  
1183 1198
    zMaxPosition=numpy.where(zImage[:,:]==zImage.max())
1184 1199
    fMaxPosition=numpy.where(fImage[:,:]==fImage.max())
1185
    print("Z max @(%i,%i) : %f" % (zMaxPosition[0][0],zMaxPosition[1][0],zImage.max()))
1186
    print("Flux max @(%i,%i) : %f\n" % (fMaxPosition[0][0],fMaxPosition[1][0],fImage.max()))
1200
    print("Z max @(%i,%i) : %f" % (zMaxPosition[1][0],zMaxPosition[0][0],zImage.max()))
1201
    print("Flux max @(%i,%i) : %f\n" % (fMaxPosition[1][0],fMaxPosition[0][0],fImage.max()))
1187 1202
    zImageCL.release()
1188 1203
    fImageCL.release()
1189 1204

  
......
1268 1283
                    numpy.float32(ExternalRadius),
1269 1284
                    numpy.float32(Angle),
1270 1285
                    numpy.int32(Line),
1271
                    grid=(zImage.shape[0]/32,zImage.shape[1]/32),block=(32,32,1))
1286
                    grid=(zImage.shape[0]/32,zImage.shape[1]/32),
1287
                    block=(32,32,1))
1272 1288
    elif Method=='TrajectoCircle':
1273 1289
        TrajectoryCU(TrajectoriesCU,IdLastCU,
1274 1290
                     numpy.uint32(Trajectories.shape[1]),
......
1277 1293
                     numpy.float32(ExternalRadius),
1278 1294
                     numpy.float32(Angle),
1279 1295
                     numpy.int32(Line),
1280
                     grid=(Trajectories.shape[0],1),block=(1,1,1))
1296
                     grid=(Trajectories.shape[0]/32,1),
1297
                     block=(32,1,1))
1281 1298
        
1282 1299
        CircleCU(TrajectoriesCU,IdLastCU,zImageCU,fImageCU,
1283 1300
                 numpy.uint32(Trajectories.shape[1]),
......
1286 1303
                 numpy.float32(ExternalRadius),
1287 1304
                 numpy.float32(Angle),
1288 1305
                 numpy.int32(Line),
1289
                 grid=(Trajectories.shape[0],zImage.shape[0]*4),block=(1,1,1))
1306
                 grid=(Trajectories.shape[0]/32,zImage.shape[0]*4/32),
1307
                 block=(32,32,1))
1290 1308
    else:
1291 1309
        TrajectoryCU(TrajectoriesCU,IdLastCU,
1292 1310
                     numpy.uint32(Trajectories.shape[1]),
......
1295 1313
                     numpy.float32(ExternalRadius),
1296 1314
                     numpy.float32(Angle),
1297 1315
                     numpy.int32(Line),
1298
                     grid=(Trajectories.shape[0],1),block=(1,1,1))
1316
                     grid=(Trajectories.shape[0]/32,1),
1317
                     block=(32,1,1))
1299 1318
        
1300 1319
        PixelCU(zImageCU,fImageCU,TrajectoriesCU,IdLastCU,
1301 1320
                numpy.uint32(Trajectories.shape[0]),
......
1305 1324
                numpy.float32(ExternalRadius),
1306 1325
                numpy.float32(Angle),
1307 1326
                numpy.int32(Line),
1308
                grid=(zImage.shape[0],zImage.shape[1],1),block=(1,1,1))
1327
                grid=(zImage.shape[0]/32,zImage.shape[1]/32,1),
1328
                block=(32,32,1))
1309 1329
    
1310 1330

  
1311 1331
    compute = time.time()-start_time
......
1318 1338

  
1319 1339
    zMaxPosition=numpy.where(zImage[:,:]==zImage.max())
1320 1340
    fMaxPosition=numpy.where(fImage[:,:]==fImage.max())
1321
    print("Z max @(%i,%i) : %f" % (zMaxPosition[0][0],zMaxPosition[1][0],zImage.max()))
1322
    print("Flux max @(%i,%i) : %f\n" % (fMaxPosition[0][0],fMaxPosition[1][0],fImage.max()))
1341
    print("Z max @(%i,%i) : %f" % (zMaxPosition[1][0],zMaxPosition[0][0],zImage.max()))
1342
    print("Flux max @(%i,%i) : %f\n" % (fMaxPosition[1][0],fMaxPosition[0][0],fImage.max()))
1323 1343

  
1324 1344
    Context.pop()
1325 1345
    

Formats disponibles : Unified diff