GPU训练速度异常
Created by: Rayarrow94
GPU单机多卡训练,发现速度比CPU单核快1/5,但是GPU占用率为100%。请问是不是GPU单机多卡的写法有问题呢:
570 def train_loop(main_program, trainer_id=None): 571 """train loop 572 """ 573 # prepare data 574 print_log("batch_size=" + str(batch_size)) 575 train_data = paddle.batch( 576 paddle.reader.shuffle( 577 ctr.train(get_file_list(is_local=is_local, is_train=True)), buf_size=4 * 100), 578 batch_size=int(batch_size)) 579 py_reader.decorate_paddle_reader(train_data) 580 581 exe.run(fluid.default_startup_program()) 582 583 if use_parallel_executor: 584 #exec_strategy = fluid.ExecutionStrategy() # GPU 585 #exec_strategy.allow_op_delay = True 586 #build_strategy = fluid.BuildStrategy() 587 #build_strategy.reduce_strategy = fluid.BuildStrategy.ReduceStrategy.Reduce 588 #pe = fluid.ParallelExecutor(use_cuda=True, loss_name=avg_cost.name,build_strategy=build_strategy, exec_strategy=exec_strategy) 589 590 exec_strategy = fluid.ExecutionStrategy() #CPU 591 exec_strategy.num_threads = int(os.getenv("CPU_NUM")) * 4 592 build_strategy = fluid.BuildStrategy() 593 build_strategy.debug_graphviz_path = "graphvis.dot" 594 595 pe = fluid.ParallelExecutor( 596 use_cuda=False, 597 loss_name=avg_cost.name, 598 main_program=main_program, 599 build_strategy=build_strategy, 600 exec_strategy=exec_strategy) 601 602 603 print_log("start to run") 604 for pass_id in range(PASS_NUM): 605 py_reader.start() 606 pass_start = time.time() 607 batch_id = 0 608 data_start_time = 0 609 try: 610 while True: 611 if batch_id == 0: 612 print_log("first batch") 613 start_time = time.time()