标签: popart

virtualGraph 和 pipelineStage Graphcore 的 PopART/Poplar 库的区别

我正在尝试使用 Graphcore 的PopART 框架(Poplar API 的一部分)来实现一个基本的流水线模型,以加速我的模型,该模型被拆分到多个处理器上。

我正在关注他们的示例代码,但我注意到该示例没有使用在pipelineStage()他们的其他一些应用程序(即Bert)中使用的调用,而是使用virtualGraph()定义操作应该运行的处理器。

以下示例的一小段:

#  Dense 1
W0 = builder.addInitializedInputTensor(
    init_weights(num_features, 512))
b0 = builder.addInitializedInputTensor(init_biases(512))

with builder.virtualGraph(0):
    x1 = builder.aiOnnx.gemm([x0, W0, b0], debugPrefix="gemm_x1")
    x2 = builder.aiOnnx.relu([x1], debugPrefix="relu_x2")

#  Dense 2
W1 = builder.addInitializedInputTensor(init_weights(512, num_classes))
b1 = builder.addInitializedInputTensor(init_biases(num_classes))

with builder.virtualGraph(1):
    x3 = builder.aiOnnx.gemm([x2, W1, b1], debugPrefix="gemm_x3")
    x4 = builder.aiOnnx.relu([x3], debugPrefix="relu_x4")
Run Code Online (Sandbox Code Playgroud)

相反,Bert 示例似乎创建了一个结合virtualGraph()pipelineStage()以下内容的上下文:

self.stack.enter_context(self.builder.pipelineStage(self.pipelineStage))
Run Code Online (Sandbox Code Playgroud)

我不确定哪种应该是首选样式。只使用有什么影响virtualGraph()吗?

python python-3.x popart poplar ipu

5
推荐指数
1
解决办法
187
查看次数

图形核心 IPU 的 Linux /dev/ipu* 设备名称的含义和目的是什么?

为什么我像下面的命令一样指定ipu4并且ipu4_ex都在 docker 中使用 ipu 设备?

docker run --device=/dev/**ipu4**:/dev/ipu4 --device=/dev/**ipu4_ex**:/dev/ipu4_ex -ti graphcore/tools gc-inventory
Run Code Online (Sandbox Code Playgroud)

docker tensorflow popart poplar ipu

2
推荐指数
1
解决办法
131
查看次数

标签 统计

ipu ×2

popart ×2

poplar ×2

docker ×1

python ×1

python-3.x ×1

tensorflow ×1