Currently generic ssd for llvm backend is under topi. I want to write ir builder program for GPUs under cuda. And I created a repo called ssd just like topi.vision under topi.cuda. And I registered multibox_prior function for cuda devices (@multibox_prior.register(“cuda”)). And I wrote corresponding init.py files. But when I call ssd.multibox_prior using device cuda as follows:
with tvm.target.create(device):
out = ssd.multibox_prior(data, sizes, ratios, steps, offsets, clip)
s = topi.generic.schedule_multibox_prior(out)
But it’s still calling the generic multibox_prior function under topi.vision instead of the one under topi.cuda. Is there anything else I should do to make topi.cuda.ssd.multibox_prior automatically be called whenever I set the compile device to cuda/gpu?
Usually I like to check explicitly in these situations to make sure the imports are happening. Can you verify that your file is imported (e.g., add a raise Exception or a print) at the beginning?
Hi, I also bind threads using ir buider. Looks like it’s not that obvious to implement it using scheduler. I’ll upload the code once I finish testing the multibox detection part of ssd.
I think it may be possible to create another ir_builder in a schedule, and bind threads to outs[0].op.body.body, as they are mostly in a ForStmt. Then replace the for statement with a smaller for loop, or just a if statement.
I’d like to run “opencl” target with SSD deep neuron network. As I know, the _contrib_MultiBoxPrior layer and _contrib_MultiBoxDetection layer are currently supported on only CPU target. So, Do you have a plan for OpenCL target SSD deep neuron networks? On the case that I’d like to contribute to TVM project by implementing OpenCL for the two above layers, Can you give me some ideas for coding such as coding structure of tvm, topi and source code implementing location ?
Did you complete your implementing OpenCL target for the two layer? Can you show me the git branch for this feature if possible? I’d like to perform a SSD network with OpenCL target.