问题标签 [radiance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 不同内核版本性能回归原因分析
我在 x86_64 系统上遇到了从 Linux 内核 3.11 到 3.12 的奇怪性能回归。在 Fedora 20 3.12 上运行Mark Stock 的 Radiance 基准测试明显变慢。没有其他任何改变 - 相同的二进制文件,相同的 glibc - 我只是启动了不同的内核版本,性能发生了变化。定时程序 rpict 是 100% CPU 绑定的用户级代码。
在我将此报告为错误之前,我想找出导致此行为的原因。我对 Linux 内核了解不多,从 3.11 到 3.12 的更改日志也没有给我任何线索。
我在两个系统上观察到这一点,一个 Intel Haswell (i7-4771) 和一个 AMD Richland (A8-6600K)。在 Haswell 系统上,用户时间从 3.11 的 895 秒变为 3.12 的 962 秒。在里奇兰,从 1764 年到 1844 年。这些时间可以在几秒钟内重复。
我用 perf 做了一些分析,发现 IPC 的下降与减速的比例相同。在 Haswell 系统上,这似乎是由于更多错过的分支造成的,但为什么预测率会下降呢?Radiance 确实使用了随机数生成器——“更好”的随机性会导致丢失的分支吗?但除了 OMAP4 支持之外,RNG 在 3.12 中似乎不需要更改。
在 AMD 系统上,perf 只是指向更多的空闲后端周期,但原因尚不清楚。
哈斯韦尔系统:
里奇兰系统:
我还查看了两个内核的 dmesg 输出的差异,但没有看到任何可能导致 CPU 密集型程序如此缓慢的任何东西。
我尝试将cpufreq调节器从默认的按需切换到性能,但这没有任何效果。
可执行文件是使用 gcc 4.7.3 编译的,但没有使用 AVX 指令。libm 似乎仍然使用一些 AVX(例如__ieee754_pow_fma4
),但这些函数仅占总执行时间的 0.3%。
附加信息:
- 内核配置的差异
- Haswell 系统上dmesg 输出的差异。
- /proc/pid/maps 的差异- 3.11 仅映射一个堆区域;3.12 手。
- A8-6600K 系统的perf stat 输出
- perf stats w/ TLB misses dTLB stats 看起来很不一样!
- /usr/bin/time -v来自 A8-6600K 系统的输出
有什么想法(除了将内核更改一分为二)?
java - 使用 Java 在 OpenCL 上运行 C 应用程序 - 可能吗?
我只知道用于神经网络、GA 和一些图形界面工作的 Java 知识。我有一个简单的问题是关于 OpenCL + Java + C 的可能性。我知道你可以在 Java 中运行 C,但是我想做的是运行第三方 C 应用程序(我没有源)通过Java,很简单-但由于计算量需要,我想让C应用程序使用OpenCL在GPU上运行-这可能吗?我知道有一些库,例如 JavaCL 等。
理想情况下,工作流程类似于:
1.Java App 强制 C 应用程序使用 OpenCL 在 GPU 上运行。
2.Java App使用Data和Parameters向C应用程序发送命令
3.Java App使用OpenCL库来管理C应用线程。
4.Java App可以初始化多个C app实例吗?
5.C App处理Data并返回给Java App。
6.Java App 可视化数据。
感谢您的任何帮助或建议。干杯,帕特里克。
rendering - 在双向路径追踪中使用 Skylight 作为光源
是否可以使用双向路径跟踪来渲染室内场景,其中光源是从窗户射进来的天光(没有太阳)?我想我大致知道如果光源是窗口矩形本身作为漫射源是如何完成的,但是如果光源是天窗并且相机在房间里,我无法理解它是如何工作的:它是需要采样的窗户形状还是天穹?光的采样点是从整个天穹中挑选出来的,还是只是从窗户上看到的一点?
c++ - 如何将色彩空间信息添加到在 OPenCV 中使用“imwrite”创建的 Radiance HDR 格式文件
我使用“cvtColor”函数将RGB色彩空间中的HDR图像转换为CIE-XYZ色彩空间,然后使用“imwrite”函数将图像写入Radiance HDR文件。但是,Radiance HDR 文件的标题仍然显示“FORMAT=32-bit_rle_rgbe”。我应该将什么传递给“imwrite”以确保它正确指定颜色空间?
我遵循本示例中的代码:https ://docs.opencv.org/3.4/d3/db7/tutorial_hdr_imaging.html (色调映射部分除外,这与我的问题无关)。我需要相对亮度信息,所以我尝试使用下面显示的代码将默认位于 BGR 空间中的 HDR 图像转换为 CIE-XYZ 空间。
大多数代码似乎都在工作,并且生成的 HDR 图像似乎已正确转换(从矩阵“hdr_xyz”中的数字判断)。
但是,生成的 HDR 文件“hdr_xyz.hdr”仍然具有以下标题:“#?RGBE FORMAT=32-bit_rle_rgbe”因此,无法使用“imshow”或 Photoshop 等程序正确显示图像。我还尝试过 Greg Ward ( http://www.anyhere.com/ ) 的“hdrgen”程序。它创建的 HDR 文件具有标题“FORMAT=32-bit_rle_xyze”,并且在 Photoshop 中正确显示。我想这是一个简单的修复(但我是 OpenCV 的新手)。非常感谢任何建议。
radiance - 有没有“你好世界!” 光辉的例子?
几天来我一直在阅读有关辐射的文章,但仍然没有遇到在我看来是一个非常简单的例子。是否可以使用单个光源和单个表面运行某些东西?最简单的例子是什么?