Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 张量流装置_Tensorflow - Fatal编程技术网

Tensorflow 张量流装置

Tensorflow 张量流装置,tensorflow,Tensorflow,我正在向TensorFlow添加新的硬件,但在设备上下文方面遇到了问题 为了确保我理解它们的用途,从代码来看,它们似乎是为了管理计算图中给定节点的设备和数据。即,在设备上下文中指定用于输入数据和输出数据的设备,执行器处理在这些设备之间来回传递张量。每个OpKernelContext似乎都包含一个控制给定内核特定执行的设备上下文 目前,对于我的新硬件,设备上下文都是空的,这最终导致了SEGFULT。按照现有C++的风格,我希望有宏允许我登记特定设备类型的设备上下文(例如,GPU,CPU),但是我找

我正在向TensorFlow添加新的硬件,但在设备上下文方面遇到了问题

为了确保我理解它们的用途,从代码来看,它们似乎是为了管理计算图中给定节点的设备和数据。即,在设备上下文中指定用于输入数据和输出数据的设备,执行器处理在这些设备之间来回传递张量。每个OpKernelContext似乎都包含一个控制给定内核特定执行的设备上下文

目前,对于我的新硬件,设备上下文都是空的,这最终导致了SEGFULT。按照现有C++的风格,我希望有宏允许我登记特定设备类型的设备上下文(例如,GPU,CPU),但是我找不到这些宏。我的问题是,在为我的设备创建OpKernelContext时,如何将适当的设备上下文添加到OpKernelContext中

请注意,我没有编写特定于硬件的设备上下文类。我注意到ThreadPoolDevice似乎没有特定于它的DeviceContext实现。我假设这是因为基类DeviceContext是为线程池实现的

如果您对DeviceContext有任何澄清,我将不胜感激。

物体 有两个目的:

  • 目前,有一些特定于StreamExecutor的位,大多数调用者可能可以忽略(gpu::Stream/MaintainLifetime),因为它们特定于gpu

    您需要OpKernels中底层设备资源的句柄,DeviceContext对象保存用于在其上进行计算的“stream”对象

    我们还没有在DeviceContext中实现其他设备应该实现为其资源的不透明句柄,但这正是我们所需要的。不幸的是,在我们能够让非基于StreamExecutor的设备正常工作之前,这是一个有待解决的问题

  • 另一个组件是处理从设备到CPU的复制的代码。对于CPU来说,DeviceContext是不存在的,这是正确的,因为CPU是主机设备,不需要从这个角度进行特殊处理

    但是作为一个例子,我们可以看看GPU的代码。 是GPU设备上下文的一个示例,它实现了DeviceContext接口。接口的实现是,它委托GPUUtil类中的代码实际执行memcopies。它碰巧使用StreamExecutor框架来处理底层拷贝,但您自己的设备将使用您拥有的任何API在主机和设备之间进行拷贝

    如果你想从一个设备复制到另一个设备,有一个特殊的注册。GPU到GPU的示例如下: 用于实现和注册该功能

  • 在某个时候,我们可能会将其重构为更干净一点,因此注册都是统一的(CPU到设备、设备到CPU、设备到设备)。目前这有点特别


    因此,目前支持其他设备将是一项正在进行的工作,但我们很高兴与您和其他人合作,充实这项支持。

    非常感谢!因此,我认为要做的第一件事是在DeviceContext中创建“不透明句柄”。如果你能告诉我你要找的东西的详细情况,我就可以开始工作了。你可以开始一个Git问题,或者我可以开始处理的事情。在哪里定义/使用了
    寄存器\u gpu\u gpu\u副本?我在TensorFlow的任何地方都找不到。我假设它是某种宏,但我找不到任何与之匹配的宏。Regex grepping也没有给出太多