I’ve been trying to get µTVM working on physical hardware, in this case an STM32F746 discovery board with zephyr.
I’m not quite the point where I’ve been able to successfully perform inference using a trivial model.
Python: https://github.com/tom-gall/utvm-examples
Slightly hacked up zephyr project: https://github.com/tom-gall/zephyr-runtime.git
With debug DEBUG:tvm.micro.transport.base:micro-rpc: opening transport DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 1 B]: fe . DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 4 B]: 03 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 3 B]: 00 00 02 … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 2 B]: 66 77 fw DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 4 B]: 04 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 3 B]: 83 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 1 B]: 01 . DEBUG:tvm.micro.transport.base:micro-rpc: write {10.00s} <- [ 2 B]: cf 9f … DEBUG:tvm.micro.transport.base:micro-rpc: read { 5.00s} 128 B -> [ 11 B]: ff fd 04 00 00 00 83 a6 01 01 c2 … DEBUG:tvm.micro.transport.base:micro-rpc: read { 5.00s} 128 B -> [ 1 B]: a3 . DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 30 00 00 00 0… DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 45 B]: 0000 25 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00 %… 0010 0b 00 00 00 11 00 00 00 00 00 00 00 72 75 6e 74 …runt 0020 69 6d 65 2e 53 79 73 74 65 6d 4c 69 62 ime.SystemLib DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 01 52 .R DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 8 B]: ff fd 1f 00 00 00 83 a6 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 10 14 00 00 00 00 00 00 00 04 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 01 00 00 00 03 00 00 00 00 80 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 02 80 ff ff ff ff ff ff ff ff 33 …3 DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 1 B]: a1 . DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 1b 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 28 B]: 0000 10 00 00 00 00 00 00 00 03 00 00 00 00 80 02 80 … 0010 ff ff ff ff ff ff ff ff 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 38 00 8. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 3 B]: ff fd 2b …+ DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 00 83 a6 10 20 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 00 04 00 00 00 02 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 00 03 00 00 00 09 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 00 00 00 80 00 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 2 B]: 5d bd ]. DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 2b 00 00 00 +… DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 44 B]: 0000 20 00 00 00 00 00 00 00 0a 00 00 00 02 00 00 00 … 0010 03 00 00 00 00 00 00 00 00 80 02 80 ff ff ff ff … 0020 ff ff ff ff 0a 00 00 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 20 e9 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 10 B]: ff fd 17 00 00 00 83 a6 10 0c … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 00 00 00 00 00 04 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 10 B]: 01 00 00 00 04 00 00 00 50 90 …P. DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 3f 00 00 00 ?.. DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 60 B]: 0000 34 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00 4… 0010 0b 00 00 00 20 00 00 00 00 00 00 00 74 76 6d 2e …tvm. 0020 72 70 63 2e 73 65 72 76 65 72 2e 4d 6f 64 75 6c rpc.server.Modul 0030 65 47 65 74 46 75 6e 63 74 69 6f 6e eGetFunction DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 16 4f .O DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 3 B]: ff fd 1f … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 00 83 a6 10 14 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 00 04 00 00 00 01 00 00 00 03 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 00 01 80 02 80 ff ff ff ff … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 6 B]: ff ff ff ff 46 a2 …F. DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 53 00 00 00 S… DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 84 B]: 0000 48 00 00 00 00 00 00 00 03 00 00 00 01 80 02 80 H… 0010 ff ff ff ff ff ff ff ff 03 00 00 00 09 00 00 00 … 0020 0b 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 … 0030 14 00 00 00 00 00 00 00 5f 6c 6f 6f 6b 75 70 5f …lookup 0040 6c 69 6e 6b 65 64 5f 70 61 72 61 6d 00 00 00 00 linked_param… 0050 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 6b 82 k. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 4 B]: ff fd 23 00 …#. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 83 a6 10 18 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 04 00 00 00 02 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 00 04 00 00 00 04 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 5 B]: 00 00 00 d5 a4 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 53 00 00 00 S… DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 84 B]: 0000 48 00 00 00 00 00 00 00 03 00 00 00 01 80 02 80 H… 0010 ff ff ff ff ff ff ff ff 03 00 00 00 09 00 00 00 … 0020 0b 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 … 0030 14 00 00 00 00 00 00 00 5f 6c 6f 6f 6b 75 70 5f …lookup 0040 6c 69 6e 6b 65 64 5f 70 61 72 61 6d 00 00 00 00 linked_param… 0050 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 6b 82 k. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 4 B]: ff fd 23 00 …#. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 83 a6 10 18 00 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 11 B]: 00 04 00 00 00 02 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 12 B]: 00 00 04 00 00 00 04 00 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [ 4 B]: 00 00 d5 a4 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: ff fd … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 4 B]: 53 00 00 00 S… DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 3 B]: 83 a6 10 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 84 B]: 0000 48 00 00 00 00 00 00 00 03 00 00 00 01 80 02 80 H… 0010 ff ff ff ff ff ff ff ff 03 00 00 00 09 00 00 00 … 0020 0b 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 … 0030 14 00 00 00 00 00 00 00 5f 6c 6f 6f 6b 75 70 5f …lookup 0040 6c 69 6e 6b 65 64 5f 70 61 72 61 6d 00 00 00 00 linked_param… 0050 00 00 00 00 … DEBUG:tvm.micro.transport.base:micro-rpc: write {30.00s} <- [ 2 B]: 6b 82 k. DEBUG:tvm.micro.transport.base:micro-rpc: read {30.00s} 128 B -> [err: SerialException]
@areusch any thoughts?