Révision 47 Pi/GPU/Pi-GPU.py
Pi-GPU.py (revision 47) | ||
---|---|---|
360 | 360 |
|
361 | 361 |
if iterations%jobs==0: |
362 | 362 |
iterationsCL=numpy.uint64(iterations/jobs) |
363 |
iterationsNew=iterationsCL*jobs
|
|
363 |
iterationsNew=numpy.uint64(iterationsCL*jobs)
|
|
364 | 364 |
else: |
365 | 365 |
iterationsCL=numpy.uint64(iterations/jobs+1) |
366 |
iterationsNew=iterations
|
|
366 |
iterationsNew=numpy.uint64(iterations)
|
|
367 | 367 |
|
368 | 368 |
for i in range(steps): |
369 | 369 |
|
... | ... | |
409 | 409 |
#print circle,float(numpy.sum(circle)) |
410 | 410 |
MyPi[i]=4.*float(numpy.sum(circle))/float(iterationsNew) |
411 | 411 |
MyDuration[i]=elapsed |
412 |
#print MyPi[i],MyDuration[i]
|
|
412 |
print MyPi[i],MyDuration[i] |
|
413 | 413 |
|
414 | 414 |
circleCL.release() |
415 | 415 |
|
... | ... | |
507 | 507 |
JobStart=1 |
508 | 508 |
# JobEnd is last number of Jobs to explore |
509 | 509 |
JobEnd=16 |
510 |
# JobStep is the step of Jobs to explore |
|
511 |
JobStep=1 |
|
510 | 512 |
# Redo is the times to redo the test to improve metrology |
511 | 513 |
Redo=1 |
512 | 514 |
# OutMetrology is method for duration estimation : False is GPU inside |
... | ... | |
516 | 518 |
Curves=False |
517 | 519 |
|
518 | 520 |
try: |
519 |
opts, args = getopt.getopt(sys.argv[1:],"hoca:g:p:i:s:e:r:d:",["alu=","gpustyle=","parastyle=","iterations=","jobstart=","jobend=","redo=","device="])
|
|
521 |
opts, args = getopt.getopt(sys.argv[1:],"hoca:g:p:i:s:e:t:r:d:",["alu=","gpustyle=","parastyle=","iterations=","jobstart=","jobend=","jobstep=","redo=","device="])
|
|
520 | 522 |
except getopt.GetoptError: |
521 |
print '%s -o (Out of Core Metrology) -c (Print Curves) -a <CPU/GPU> -d <DeviceId> -g <CUDA/OpenCL> -p <Threads/Hybrid/Blocks> -i <Iterations> -s <JobStart> -e <JobEnd> -r <RedoToImproveStats>' % sys.argv[0] |
|
523 |
print '%s -o (Out of Core Metrology) -c (Print Curves) -a <CPU/GPU> -d <DeviceId> -g <CUDA/OpenCL> -p <Threads/Hybrid/Blocks> -i <Iterations> -s <JobStart> -e <JobEnd> -t <JobStep> -r <RedoToImproveStats>' % sys.argv[0]
|
|
522 | 524 |
sys.exit(2) |
523 | 525 |
|
524 | 526 |
for opt, arg in opts: |
525 | 527 |
if opt == '-h': |
526 |
print '%s -o (Out of Core Metrology) -c (Print Curves) -a <CPU/GPU> -d <DeviceId> -g <CUDA/OpenCL> -p <Threads/Hybrid/Blocks> -i <Iterations> -s <JobStart> -e <JobEnd> -r <RedoToImproveStats>' % sys.argv[0] |
|
528 |
print '%s -o (Out of Core Metrology) -c (Print Curves) -a <CPU/GPU> -d <DeviceId> -g <CUDA/OpenCL> -p <Threads/Hybrid/Blocks> -i <Iterations> -s <JobStart> -e <JobEnd> -t <JobStep> -r <RedoToImproveStats>' % sys.argv[0]
|
|
527 | 529 |
|
528 | 530 |
print "\nInformations about devices detected under OpenCL:" |
529 | 531 |
# For PyOpenCL import |
... | ... | |
555 | 557 |
JobStart = int(arg) |
556 | 558 |
elif opt in ("-e", "--jobend"): |
557 | 559 |
JobEnd = int(arg) |
560 |
elif opt in ("-t", "--jobstep"): |
|
561 |
JobStep = int(arg) |
|
558 | 562 |
elif opt in ("-r", "--redo"): |
559 | 563 |
Redo = int(arg) |
560 | 564 |
|
... | ... | |
651 | 655 |
if len(average)!=0: |
652 | 656 |
numpy.savez("Pi_%s_%s_%s_%s_%i_%.8i_Device%i_%s_%s" % (Alu,GpuStyle,ParaStyle,JobStart,JobEnd,Iterations,Device,Metrology,gethostname()),(ExploredJobs,average,median,stddev)) |
653 | 657 |
numpy.savetxt("Pi_%s_%s_%s_%s_%i_%.8i_Device%i_%s_%s" % (Alu,GpuStyle,ParaStyle,JobStart,JobEnd,Iterations,Device,Metrology,gethostname()),(ExploredJobs,average,median,stddev)) |
654 |
Jobs+=1
|
|
658 |
Jobs+=JobStep
|
|
655 | 659 |
|
656 | 660 |
FitAndPrint(ExploredJobs,median,Curves) |
657 | 661 |
|
Formats disponibles : Unified diff