Forum Discussion
Altera_Forum
Honored Contributor
10 years agoIf the emulator runs them sequentially that might explain why it doesn't work. I have two kernels that stream in sequential data from main memory into a channel each, an output streamer that writes sequential data to memory and a worker kernel which connects them. There are no cycles. I've had this situation multiple times now and it always works on the device, but always causes trouble in the emulator. The thing is, even on the emulator it works fine if I use small data sets, that is, stream only a few KB. When I use large data sets, the second input streamer kernel is never run (tested by inserting a printf command at the beginning of each kernel).
The emulator, runnign kernels sequentially, seems to try to run the worker kernel before the second input streamer, causing a deadlock. I'm wondering though, how did you get a cyclical design to work on the emulator. I don't see how that's even possible if the emulator runs kernel sequentially.