我想计算图形硬件的理论峰值性能。嗯,实际上我想了解计算。
以 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 主页的说法相同。
所以我的问题是:我在哪里遗漏了二的因数?
我正在尝试在 IPv6 上运行一个带有多个公开端口的 docker 容器。我不希望容器拥有自己的 IPv6 地址。我想要的只是让它们可以在主机的 IPv6 地址下访问(使用端口转发)。
\n我在 docker 守护进程中启用了 IPv6 ( http://docs.docker.oeynet.com/engine/userguide/networking/default_network/ipv6/ )。
\n我试过
\nports:\n # The HTTP port\n - ":::80:80"\n
Run Code Online (Sandbox Code Playgroud)\n在容器的 docker-compose.yaml 中,但这似乎完全搞乱了配置:
\nCONTAINER 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使用另一个容器(不在我的控制之下,我似乎无法找出它是如何启动的),端口被正确转发:
\na04b40299a8f 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如何为第一个容器实现此目的?
\nOpenCL为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)
现在我的问题是:那些在类定义中但既不是内联也不是模板化的实现不应该违反一个定义规则吗?我在这里想念的是什么?
我想比较两个包含尽可能高效的双元组的元组.
由于这不能用的,因为浮点精度预定义的==操作符(...)来完成,这将是最好的方法是什么?我真的需要遍历所有元组的元素或者是有一些神奇的模板,我可以使用,这可能让编译器调用某些SIMD的优化?