同步操作将从 Gitee 极速下载/Halide 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "DeviceArgument.h"#include "CodeGen_GPU_Dev.h"#include "IRPrinter.h"namespace Halide {namespace Internal {std::vector<DeviceArgument> HostClosure::arguments() {if (debug::debug_level() >= 2) {debug(2) << *this;}std::vector<DeviceArgument> res;for (const auto &v : vars) {res.emplace_back(v.first, false, MemoryType::Auto, v.second, 0);}for (const auto &b : buffers) {DeviceArgument arg(b.first, true, b.second.memory_type, b.second.type, b.second.dimensions, b.second.size);arg.read = b.second.read;arg.write = b.second.write;res.push_back(arg);}return res;}void HostClosure::visit(const Call *op) {if (op->is_intrinsic(Call::image_load) ||op->is_intrinsic(Call::image_store)) {// The argument to the call is either a StringImm or a broadcasted// StringImm if this is part of a vectorized expressionconst StringImm *string_imm = op->args[0].as<StringImm>();if (!string_imm) {internal_assert(op->args[0].as<Broadcast>());string_imm = op->args[0].as<Broadcast>()->value.as<StringImm>();}internal_assert(string_imm);std::string bufname = string_imm->value;Buffer &ref = buffers[bufname];ref.type = op->type;ref.memory_type = op->is_intrinsic(Call::image_load) ||op->is_intrinsic(Call::image_store) ?MemoryType::GPUTexture :MemoryType::Auto;if (op->is_intrinsic(Call::image_load)) {ref.read = true;ref.dimensions = (op->args.size() - 2) / 2;} else if (op->is_intrinsic(Call::image_store)) {ref.write = true;ref.dimensions = op->args.size() - 3;}// The Func's name and the associated .buffer are mentioned in the// argument lists, but don't treat them as free variables.ScopedBinding<> p1(ignore, bufname);ScopedBinding<> p2(ignore, bufname + ".buffer");Internal::Closure::visit(op);} else {Internal::Closure::visit(op);}}void HostClosure::visit(const For *loop) {if (CodeGen_GPU_Dev::is_gpu_var(loop->name)) {// The size of the threads and blocks is not part of the closureScopedBinding<> p(ignore, loop->name);loop->body.accept(this);} else {Internal::Closure::visit(loop);}}} // namespace Internal} // namespace Halide
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。