Our concerns to put the supported operators in each codegen are readability and maintenance. If we skip the central extern op module definition, we will need every extern op function to use decorator, similar to the current TOPI implementation:
``` @reg.register_extern_op("nn.conv2d", "gcc") ``` Considering most external codegen writers are not familiar with TVM codebase, this could be confusion and hard to be maintained by others. That's why we choose the most straightforward approach. In fact, the current TOPI implementation is suffering from this problem as well, and we do have to plan to somehow get rid of it. In addition, even the writer wants to support an op that has never been supported and she forgets to put it to the outer module, it is easy to find out in at the early stage. More importantly, it provides a clear list to us about what kinds of ops can be supported externally. --- [Visit Topic](http://tracking.discuss.tvm.ai/tracking/click?d=2zHJ-oLuPzy-Sp0s1DTQwv6ZdHOSJcD8Hf0pAjYlbVALR8i8RXQQV7sOji-PiTDWHxn4bTA2GKvmmV4egbtEqN0E5Yqo78JP15smGHxtBDo6Pb6TjCfKAMickHv11Le-tGVX-w_VKSc8AfbhpRh6n8iBB5mUAQD8tgJSupVa2WKo0) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](http://tracking.discuss.tvm.ai/tracking/click?d=7cFgOaAA4XIBVlVKt_oyC07uihTjg4Q6cjeBRNRTiPqFBqfWq8Yc5FTfgk44-AFwrpbwKBpWjAAywxDZEM-bfavAonH01ThbyzbQygbMfp6-2FDugFqPehSliaZnXZnyWNmQVkWsvr7Fb7P89a7HADyFDUhQ4Xn_KpKo9HX64z-bdT7CSTrMoYv3Ak_kmOhvoA6ehKAjVramAQe75gFL0zmZIPowN0eN0oBcTG1Emzmg0). Tianqi Chen, UW, Seattle, WA, 98105, United States http://tracking.discuss.tvm.ai/tracking/unsubscribe?msgid=jlXTc4KwO6lWp_SXKTNjZQ2