Open bartlomiejgrzeskowiak opened 1 year ago
Hi @bartlomiejgrzeskowiak,
This is for hardware_path
only, correct?
Could you please check what is the max_transfer_size
setting that you have set for the WQ? (accel-config list | grep transfer
)
Hi @bartlomiejgrzeskowiak, This is for
hardware_path
only, correct? It is most probably 'software path since'. I am using crc_example.c where DML_PATH_SW is set. https://github.com/intel/DML/blob/6d71051c405c2318d06aad96d3b0244ce8c4bcbe/examples/low-level-api/crc_example.c#L20Could you please check what is the
max_transfer_size
setting that you have set for the WQ? (accel-config list | grep transfer
)
[bgrzesko@fl31ca105bs0411 ~]$ accel-config list | grep transfer
"max_transfer_size":2147483648,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2147483648,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
"max_transfer_size":2097152,
hi @bartlomiejgrzeskowiak,
sorry I was not clear, I believe you were running with hardware_path
(meaning using DSA for execution), since the line is [bgrzesko@fl31ca105bs0411 build]$ ./examples/low-level-api/ll_crc_example_4MB hardware_path
, I was just trying to double check whether you observed the similar error on software_path/DML_PATH_SW
as well.
Let me try to reproduce on my side and I'll get back to you.
hi @bartlomiejgrzeskowiak, sorry I was not clear, I believe you were running with
hardware_path
(meaning using DSA for execution), since the line is[bgrzesko@fl31ca105bs0411 build]$ ./examples/low-level-api/ll_crc_example_4MB hardware_path
, I was just trying to double check whether you observed the similar error onsoftware_path/DML_PATH_SW
as well.Let me try to reproduce on my side and I'll get back to you.
Hi @mzhukova ,
You're totally right. I was executing HW PATH. Sorry for misleading you, it was some time ago and I did not noticed that the argument does overwrite the path.
Please let me know if you're able to reproduce the issue.,
BR Bartek
Hey @bartlomiejgrzeskowiak , 16 MB is too large to be allocated on the stack. If you wanted to use a 16MB example, you would need to use malloc()
Simple godbolt example for large allocation: https://godbolt.org/z/Ts9xndqcq Quick reference I found for size of stack on linux being somewhere between 8-10MB: https://unix.stackexchange.com/questions/473416/why-on-modern-linux-the-default-stack-size-is-so-huge-8mb-even-10-on-some-di
Hi @bartlomiejgrzeskowiak, This is for
hardware_path
only, correct? It is most probably 'software path since'. I am using crc_example.c where DML_PATH_SW is set. https://github.com/intel/DML/blob/6d71051c405c2318d06aad96d3b0244ce8c4bcbe/examples/low-level-api/crc_example.c#L20Could you please check what is the
max_transfer_size
setting that you have set for the WQ? (accel-config list | grep transfer
)[bgrzesko@fl31ca105bs0411 ~]$ accel-config list | grep transfer "max_transfer_size":2147483648, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2147483648, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152, "max_transfer_size":2097152,
Hey @bartlomiejgrzeskowiak , it seems that your workqueue's max_transfer_size is 2 MB (2097152 bytes), which would explain the 4 MB example issue
Hi @abdelrahim-hentabli ,
Ok, but:
Hey @bartlomiejgrzeskowiak
What is the acceptable input buffer size for CRC operation ?
I play with different sizes of CRC buffer. DML Lib does accept different sizes, but it behaves with error or even segmentation fault in some cases.
Example execution:
How to reproduce (diff -> apply and compile example) :