- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在灰度图像的方形图 block (8x8) 上实现一个度量,产生 3 个输出(梯度的累积、图 block 的最大值和最小值):每个输出都是一个尺寸为 (IMG_WIDTH) 的图像/8; IMG_HEIGHT/8).在下面的实现中,3 个结果是单独计算的,但我想将它们一起计算;此外,我找不到 gpu 的良好时间表:
#define IMAGE_WIDTH (1280)
#define IMAGE_HEIGHT (1024)
#define TILE_SIZE (8)
Halide::Buffer<uint8_t> input_image(IMAGE_WIDTH, IMAGE_HEIGHT);
Halide::Var xo, yo, xi, yi;
Halide::Func tiled_input;
tiled_input(xi, yi, xo, yo) = input_image(Halide::clamp(xo * TILE_SIZE + xi, 0, input_image.width()-1),
Halide::clamp(yo * TILE_SIZE + yi, 0, input_image.height()-1));
Halide::Expr gradientX, gradientY;
gradientX = Halide::cast<int16_t>(tiled_input(xi+1, yi, xo, yo)) - Halide::cast<int16_t>(tiled_input(xi-1, yi, xo, yo));
gradientY = -(Halide::cast<int16_t>(tiled_input(xi, yi+1, xo, yo)) - Halide::cast<int16_t>(tiled_input(xi, yi-1, xo, yo)));
Halide::Expr agx, agy, m;
agx = Halide::abs(gradientX);
agy = Halide::abs(gradientY);
m = Halide::select(agx > agy, agx+(agy/2), agy+(agx/2));
Halide::RDom tile_domain(0, TILE_SIZE, 0, TILE_SIZE);
Halide::Func tiled_output_x, tiled_output_y;
tiled_output_x(xi, yi, xo, yo) = Halide::cast<int16_t>(m);
Halide::Func accx;
Halide::Func tiled_output_max, tiled_output_min;
accx(xo, yo) = Halide::sum(tiled_output_x(tile_domain.x, tile_domain.y, xo, yo));
tiled_output_max(xo, yo) = Halide::maximum(tiled_input(tile_domain.x, tile_domain.y, xo, yo));
tiled_output_min(xo, yo) = Halide::minimum(tiled_input(tile_domain.x, tile_domain.y, xo, yo));
Halide::Buffer<int16_t> output_buffer_accx(input_image.width()/TILE_SIZE, input_image.height()/TILE_SIZE);
Halide::Buffer<uint8_t> output_buffer_max(input_image.width()/TILE_SIZE, input_image.height()/TILE_SIZE);
Halide::Buffer<uint8_t> output_buffer_min(input_image.width()/TILE_SIZE, input_image.height()/TILE_SIZE);
accx.realize(output_buffer_accx, get_host_target());
tiled_output_max.realize(output_buffer_max, get_host_target());
tiled_output_min.realize(output_buffer_min, get_host_target());
CPU 的良好调度可以如下所示:
accx.vectorize(xo, TILE_SIZE).parallel(yo);
tiled_output_max.vectorize(xo, TILE_SIZE).parallel(yo);
tiled_output_min.vectorize(xo, TILE_SIZE).parallel(yo);
但是我找不到适合 GPU 的。有什么帮助吗?
最佳答案
关于将三个结果打包到一个元组中的评论是将它们全部计算在一起的最简单方法。
Re: GPU schedule,你看过apps
文件夹里的例子了吗?其中一些具有经过深思熟虑的完整 GPU 计划,应该证明是有用的。
关于c++ - 用于 GPU 上的瓦片度量和调度的 Halide,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51610657/
背景信息:对于国际销售表中的每一行,我需要检索过去特定日期的美元汇率,以便分析人员确定汇率变化的影响关于销售数字。然后,我将使用今天的汇率与过去的汇率之间的差值,并将其乘以销售额来确定影响。 实际问题
是否可以通过切片器值动态选取表中定义的适当 DAX 度量? 源表: +----------------+------------+ | col1 | col2 | +-
我有一个 ViewFlipper在我的主要 Activity View 上。在 onCreate 我实例化添加到 ViewFlipper 的 View 。之后,我将显示的 child 设置为第一个。当
我正在研究句子类别检测问题。每个句子可以属于多个类别例如: "It has great sushi and even better service." True Label: [[ 0. 0.
谁能帮我一起计算F-measure?我知道如何计算召回率和准确率,但不知道对于给定的算法如何计算一个 F-measure 值。 例如,假设我的算法创建了 m 个集群,但我知道相同数据有 n 个集群(由
我对通过宏精度和手动召回计算宏 f1-score 感兴趣。但结果并不相等。代码中 f1 和 f1_new 的最终公式有什么区别? from sklearn.metrics import precisi
我有一张记录了一些人体重的表格: Year Person Weight 2010 Mike 75 2010 Laura 60 2011 Mike 80 201
df分为训练数据帧和测试数据帧。训练数据帧分为训练数据帧和测试数据帧。因变量Y是二进制(因子),值为 0 和 1。我试图用此代码(神经网络,插入符号包)预测概率: library(caret) mod
我想使用 Hausdorff 距离作为训练指标,但我刚刚找到了 Weighted_Hausdorff_loss并将其用作医学图像分割的指标。 import math import numpy as n
我有一段时间没有使用 R,所以也许我只是不习惯它,但是..我在 R 中有一个表,有两个列,第一个有预测值(值可以是 0 或 1 ),第二个具有实际值(也是 0 或 1)。我需要找到召回率、精度和 f
我正在使用 Collectd 收集系统指标。我正在小范围内收集测量值以获得准确的值。但是我想使用 Statsd 在本地聚合这些值。 Statsd 应该聚合这些值并以更长的时间间隔将它们发送到 libr
我使用SciKit作为一个库来处理分类算法,例如:NB、SVM。 这是一个非常漂亮的binary classification implementation对于“垃圾邮件和HAM”电子邮件:
我正在寻找 MST 启发式算法的严格示例,它是度量旅行商问题的 2 近似算法。 这个算法在网上很容易找到,但我找不到具体的例子。我所说的严格示例是指给定算法返回的解决方案比最佳解决方案差 2 倍的示例
我使用 Data Studio 中的 Case 函数来确定某个值是否高于或低于 6,000 英镑,并根据输出呈现两个数字之一。这两个数字是计算字段。 第一个案例陈述: (大于或小于)- CASE WH
我正在使用 Ganglia + RRDTool为 monitoring a web farm .很多图很清楚,但是当我看到load_one metric , 我 don't have Y-axis l
以下是股票交易数据的简化版本。 StockData = DATATABLE ( "STOCK", STRING, "Date", DATETIME, "Buyer", STRI
我正在尝试将ASP.NET Core 7应用程序中的度量/跟踪发送到Grafana。。这是我的《码头工人》作文文件。。下面是我的收集器配置:。下面是配置OpenTelemeter的服务集合扩展方法。。
我正试图从我的ASP.NET Core 7应用程序向Grafana发送度量/跟踪。。这是我的《码头工人》作文文件。。下面是我的收集器配置:。下面是配置OpenTelemeter的服务集合扩展方法。。首
我是一名优秀的程序员,十分优秀!