tensorflow-gpu 使用GPU时,跟CPU情况下效率不变问题

设置使用GPU,但是计算速度没有什么变化,gpu利用率极低。
下面是部分代码:


from tensorflow.python.framework import ops

ops.reset_default_graph()

config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.85
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

with tf.device('/GPU:0'):
    x = tf.placeholder(shape=[None, 20],dtype=tf.float32, name="x_m")
    y = tf.placeholder(shape=[None, 2], dtype=tf.float32, name="y_m")

    with tf.name_scope("cross_entropy"):
        y_ = train_model_gpu(x)
        cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_, labels=y), name="cross_entropy_m")

图片描述

图片描述

阅读 14.2k
2 个回答
  1. 任务管理器默认显示3D、Copy这几项,但是在用cuda的时候,主要使用的是Compute和Copy,你要切换一下
  2. Copy只有2%左右,数据量不大,模型太简单也发挥不了GPU优势

那看你在什么数据上跑了,要是小数据,本来就不需要多少计算量,反而数据在CPU和GPU之间来回传输还会拖慢计算。小数据量完全没必要用GPU,发挥不出计算优势。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进