是否可以使用编译设置USE_CUDNN:= 1的CPP代码?

问题描述:

在caffe中,编译时必须选择USE_CUDNN := 1。我将用.hpp和.cpp代码(不包含.cu)编写一个新图层。如果我没有写cuda代码(.cu),我还可以使用我的图层吗?例如,我将设置图层为engine=CAFFE是否可以使用编译设置USE_CUDNN:= 1的CPP代码?

您可能只有CPU实现的图层。请参阅development页面以获取有关将图层设置为“仅限CPU”所需的更改的说明。

但是,请注意,当通过网络进行转发/反向传输时,每次数据通过图层时,数据将从GPU复制到CPU内存。这种来回存储器同步可能会花费大量时间并严重拖延您的计算。在大多数情况下,为图层做出努力并实现GPU版本也是值得的。

+0

谢谢。所以,我需要使用CPU版本的任何设置。我尝试了'batch_norm_param {use_global_stats:false engine:CAFFE }''但它没有工作 – user8264

+0

@ user8264'batch_norm_param'只被BatchNorm层使用。您不需要指定引擎。 – Jonathan