我知道我可以测量一次调用的执行时间sess.run(),但是有可能获得更精细的粒度并测量单个操作的执行时间吗?
查看Boost.Coroutine的性能页面,对称协程似乎比不对称协同程序要便宜得多,大约50倍.这似乎令人惊讶,因为对称协程似乎提供了更一般的抽象.在不对称协程中是否有一些功能可以证明这个成本是合理的?
我还要补充一点,在不对称协程的情况下,构建成本约为上下文切换成本的500倍,因此很容易成为应用程序的瓶颈.
使用g ++ - 5,我得到以下输出
#include <type_traits>
#include <tuple>
int main()
{
bool b;
b = std::is_default_constructible<int>::value; //Compiles, returns true
b = std::is_default_constructible<int&>::value; //Compiles, returns false
b = std::is_default_constructible< std::tuple<int> >::value; //Compiles, returns true
b = std::is_default_constructible< std::tuple<int&> >::value; //Does not compile
}
Run Code Online (Sandbox Code Playgroud)
这是is_default_constructible实施中的错误吗?
错误消息是一个长堆栈列表,结尾于:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.1.0/../../../../include/c++/5.1.0/tuple:105:9: error: reference to type 'int' requires an initializer
: _M_head_impl() { }
Run Code Online (Sandbox Code Playgroud) 在tensorflow的cifar10多GPU示例中,似乎(如果我错了,请纠正我)每个GPU创建一个训练图像队列."正确"的做事方式不是要让所有塔都有一个队列吗?如果是,是否有可用的共享队列示例?