【问题标题】:Is it possible to run multiples of the same model in parallel on the Coral dev board?是否可以在 Coral 开发板上并行运行多个相同模型?
【发布时间】:2021-01-19 19:22:19
【问题描述】:

我正在运行 mobilnet SSD,每个输入图像大约需要 14 毫秒。我可以在同一个开发板 tpu 上同时运行其中两个模型吗?例如,我有 100 张图片的积压,我想通过所有 100 张图片,对我来说唯一重要的是需要多长时间才能通过所有 100 张图片。因此,如果我一次可以运行 2 或 4 张,那将是惊人的。我尝试通读文档并查看了流水线,但边缘编译器告诉我“~$ 警告:对于给定的模型,您创建的段超出了必要的数量”。我读到的关于并行运行的所有其他内容都是关于使用两个物理边缘 TPU。如果不可能,那很好,我只想确定:)

谢谢

【问题讨论】:

    标签: google-coral


    【解决方案1】:

    您可以运行多个模型,但 TPU 的内存有限,并且会将您的模型换入和换出,因此您可能看不到通过将任务委派给多个模型来提高性能。但是,您可以co-compile your models。此过程使用相同的标识符(缓存令牌)“编译”每个模型,这使它们能够在 TPU 上运行而不会被换入和换出。

    编译模型使用edgetpu_compiler;这个过程是这样的:

    edgetpu_compiler someModel.tflite someOtherModel.tflite
    

    或者同款:

    edgetpu_compiler someModelA.tflite someModelA_duplicate.tflite
    

    该过程存在一些细微差别,例如将模型提供给 edgetpu_compiler 过程的顺序可能会影响性能,就像组合模型太大而无法放入 TPU RAM 的情况一样。我建议从 documentation about multiple models 开始。

    【讨论】:

    • 感谢 j2abro。我看过这个,但似乎主要是关于运行两个不同的模型,我只想运行同一模型的多个实例。
    • @confused - 好的,明白了。我认为同一模型的过程将是相同的,因为编译过程只是在模型中设置令牌。我已经更新了答案以反映这一点,尽管您可能仍然必须以不同的方式命名模型,因为编译实际上在文件中设置了内部令牌值。可能值得一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多