小编Mat*_*fel的帖子

如何计算 GPGPU 硬件中的峰值 FLOPS?

我想计算图形硬件的理论峰值性能。嗯,实际上我想了解计算。

以 AMD Radeon HD 6670 为例:AMD 加速并行处理编程指南 ( http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf ) 在第 6-42 页中间告诉我要获取流核心的数量 ( 96),将其乘以每个流核心每个周期的操作数(我们采用单精度 ADD,即 5),然后乘以核心时钟 (800 MHz)。结果是:

96 * 5 FLOPS * 800MHz = 384,000 MFLOPS = 384 GFLOPS

同一份文档在 D-4 页上告诉我,该特定设备的峰值吞吐量为 768 GFLOPS,是我刚刚计算的两倍。维基百科和 AMD 主页的说法相同。

所以我的问题是:我在哪里遗漏了二的因数?

gpu gpgpu opencl amd-processor

4
推荐指数
1
解决办法
2014
查看次数

Docker-compose 在 IPv6 上公开端口

我正在尝试在 IPv6 上运行一个带有多个公开端口的 docker 容器。我不希望容器拥有自己的 IPv6 地址。我想要的只是让它们可以在主机的 IPv6 地址下访问(使用端口转发)。

\n

我在 docker 守护进程中启用了 IPv6 ( http://docs.docker.oeynet.com/engine/userguide/networking/default_network/ipv6/ )。

\n

我试过

\n
ports:\n  # The HTTP port\n  - ":::80:80"\n
Run Code Online (Sandbox Code Playgroud)\n

在容器的 docker-compose.yaml 中,但这似乎完全搞乱了配置:

\n
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                  PORTS                                                                                  NAMES\n9774a1a6322c   traefik:latest           "/entrypoint.sh --ap\xe2\x80\xa6"   1 second ago   Up Less than a second   80/tcp                                                                                 traefik\n
Run Code Online (Sandbox Code Playgroud)\n

使用另一个容器(不在我的控制之下,我似乎无法找出它是如何启动的),端口被正确转发:

\n
a04b40299a8f   portainer/portainer-ce   "/portainer"             7 days ago     Up 3 minutes            0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer\n
Run Code Online (Sandbox Code Playgroud)\n

也可以使用主机的 IPv6 地址访问此容器(如预期)。\n如何为第一个容器实现此目的?

\n

port ipv6 docker docker-compose

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

为什么OpenCL cl.hpp(仅限标题)包装器不会破坏一个定义规则?

OpenCL为cl.h提供了一个只有头文件的C++包装器,称为cl.hpp.它随附一些实现,但也可以从khronos.org获得,因为它只使用OpenCL库.

它包含很多模板和内联的东西,但也有这样的东西:

namespace cl
{
 class Buffer : public Memory
 {
  Buffer (...stuff...)
  {
   // Constructor implementation
  }

  // ...
  // Other Constructors and such
  // ...

  Buffer& operator= (const Buffer& rhs)
  {
   // implementation
  }

  // ...

  Buffer createSubBuffer (...)
  {
   // implementation
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:那些在类定义中但既不是内联也不是模板化的实现不应该违反一个定义规则吗?我在这里想念的是什么?

c++ gpgpu opencl

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

如何有效地比较包含双精度的std :: tuple是否相等

我想比较两个包含尽可能高效的双元组的元组.

由于这不能用的,因为浮点精度预定义的==操作符(...)来完成,这将是最好的方法是什么?我真的需要遍历所有元组的元素或者是有一些神奇的模板,我可以使用,这可能让编译器调用某些SIMD的优化?

c++ floating-point optimization c++11

0
推荐指数
1
解决办法
1157
查看次数