我在使用tensorflow时遇到了问题,无法有效地利用我的系统上的Nvidia GeForce GTX 1080 GPU。我将代码简化为下面的版本; 我只是循环运行一个session.run()操作,应该使用GPU,数据仅被获取一次并在循环内重复使用,因此此代码应只利用GPU。
input_training_data=self.val_data[batch_size, :] input_training_label=self.val_label[batch_size, :] feed_dict = self.get_feed_dict(input_training_data, input_training_label) for i in range(1000): acc = sess.run(cost, feed_dict)
我发现当batch_size = 16时,GPU使用率大多保持稳定在约8%,当我将batch_size增加到32时,最大GPU使用率增加到9-12%,但利用率大多保持在0%左右,并且不时会跳到15%-25%,然后立即回落到0%。对于更大的batch_sizes,这种模式继续存在,基本上任何大于16的批量大小都会增加最大利用率,但利用率大多保持在0,并且只会不时地突然上升。我错过了什么?
input_training_data=self.val_data[batch_size, :] input_training_label=self.val_label[batch_size, :] feed_dict = self.get_feed_dict(input_training_data, input_training_label) for i in range(1000): acc = sess.run(cost, feed_dict)
我发现当batch_size = 16时,GPU使用率大多保持稳定在约8%,当我将batch_size增加到32时,最大GPU使用率增加到9-12%,但利用率大多保持在0%左右,并且不时会跳到15%-25%,然后立即回落到0%。对于更大的batch_sizes,这种模式继续存在,基本上任何大于16的批量大小都会增加最大利用率,但利用率大多保持在0,并且只会不时地突然上升。我错过了什么?