Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI][BYORTL] add Verilator regression test to CI #7098

Merged
merged 1 commit into from Jan 23, 2021
Merged

Conversation

vegaluisjose
Copy link
Member

Copy link
Contributor

@tmoreau89 tmoreau89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @vegaluisjose LGTM

@tqchen
Copy link
Member

tqchen commented Dec 13, 2020

Thanks @vegaluisjose , looking at the files, looks like that libverilator.so needs to be shared cross stages. Merging this now would create a problem.

It would be great to not do so, and build the library before test (at the same stage)

@vegaluisjose
Copy link
Member Author

Hey @tqchen ,

I don't think I am following, could you elaborate on what the problem will be?

The library is currently built when the CMAKE macro USE_VERILATOR_HW is ON. Also, during this stage the library is linked, so tvm knows where to find such library when selecting that backend in Python.

@tqchen
Copy link
Member

tqchen commented Dec 14, 2020

Because the current mainline does not generate libverilator. The caching step will fail because we cannot found libverilator.

Sorry that i did not point in previous code review, and happy to discuss this further. Right now this PR has the following dependency:

  • libtvm depends on libverilator.so When build with verilator runtime in set.

It would really be nice if the hw part can be built independently, and loaded on demand. So libtvm can load select and load the right version of libverilator when necessary. We can build the libverilator right at the test stage, with libtvm available.

We can explore a few ways to do that. One way I can think about, is as follows:

  • move the runtime part src/runtime/contrib/verilator/ to the vta-hw, still include the json runtime, build and link against libtvm
  • Use a load_dll function(like in https://github.com/apache/tvm-vta/blob/main/apps/tsim_example/python/tsim.py#L27, we can define in vta) to load the dll in store in global namespace, which will register the necessarily callbacks for the verilog json runtime
  • Execute as normal.

Happy to chat more

Copy link
Contributor

@tmoreau89 tmoreau89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preventing accidental merges

@liangfu
Copy link
Member

liangfu commented Dec 25, 2020

It would really be nice if the hw part can be built independently, and loaded on demand.

+1

@vegaluisjose
Copy link
Member Author

Hey guys,

The CI is updated now with the new version of Verilator backend. CI (Jenkins) seems to be working.

Copy link
Contributor

@tmoreau89 tmoreau89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's great, thanks for making sure we land these verilator CI tests @vegaluisjose !

@tmoreau89 tmoreau89 merged commit 42eb55d into main Jan 23, 2021
@tmoreau89
Copy link
Contributor

Thank you @liangfu @tqchen @vegaluisjose ; the PR has been merged.

alexwong pushed a commit to alexwong/tvm that referenced this pull request Feb 11, 2021
electriclilies pushed a commit to electriclilies/tvm that referenced this pull request Feb 18, 2021
Lokiiiiii pushed a commit to Lokiiiiii/tvm that referenced this pull request Mar 2, 2021
trevor-m pushed a commit to neo-ai/tvm that referenced this pull request Mar 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants