* Add same_as to NodeBase
1. Most class inherited from NodeBase(Schedule, Stage, etc) still have
the convenience of using '==' for object identity. And this is the right
behavior for non-Expr classes.
2. subclasses of ExprOp now create EQ expression when '==' is used.
`__nonzero__` and `__bool__` in EQ and NE is a comprise that in some cases
object identity semantics is still useful, like in unit test. For instance:
````
assert a == b
````
"a == b" will create EQ expression, assert then calls `__nonzero__` of the
result expression. `Expr.__nonzero__` throws exception since it prohibits
evaluating IR expression.
More complex case like:
````
assert a in b # b is dict
````
it will call `__eq__` on a and all keys of b, then `__bool__` on the result
expression. This could not easily be done by same_as.
* Retain __hash__ from NodeBase in Python3
* added initial llvm codegen for amdgpu
* fixed whitespace
* fixed hsaco gen from ir
* fixed targetmachine for rocm and added GetSource for rocm
* fixed whitespace issues
* changed statement to use less than 100 lines
* added intrinsics for workgroup - rocm
* whitespace - newline error fix
* fixed error msg for workitem-workgroup intrinsics
* added llvm ir dump for rocm codegen
* [ROCM] changed codegen to emit proper amdgpu kernel header
* fixed whitespace error
* fixed whitespace error- 2
* fixed AddFunction to not to use extra arg
1. Changed AddFunctionInternal to not to take extra arg for target type
2. Use Target from CodeGenLLVM to check for AMDGPU target
* fixed whitespaces
* fixed whitespaces 2
* fixed codegen for AMDGPU - now generating valid IR
* fixed codegen depending on code review
* reviewed alignment for amd devices
* added code to dump code object to file
* fixed cpplint errors
* print out IR after pass manager
* added code to dump asm, obj to file and std string
* fixed whitespaces
* Update codegen_amdgpu.cc
* used registry for amdgpu llvm
* Fixed whitespaces
* added code for calling linker
* fixed formatting errors
* added rocm link python interface
* fixed pylint issues and added more body to the function
* added doc string
* added doc string for module
* fixed python code after review, fixed llvm object codegen
* fixed linker to generate code object
* removed dumping to output file and debugging log out
* fixed lint for python code
* added fault check after running linker
* removed print statement in rocm.py
* changed rocm lld linker to raise runtimeerror than emitting error log to stderr
* changed the way linker command line is pass to subprocess.popen
* removed redundant code and reuse tvm utils
* removed commented out code
* removed cloning of unused modules, and put IR into string
* Typofix.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
* Probe for nvrtc in lib directory as well.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
* Conda build recipe for TVM.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>