Files
calculet-npu-research-archive/history/topics/01-concurrency-async-job-queue.tsv

12 KiB

137e65977fb05e671b1acfb4a11e96d2d6a3a5839cde1d40fc252240b2ccdab0785d53e3643f841932026-05-29T15:45:23+08:00patrickyangfix atomic memory order issues
2ff9f1440163846534a91e5c6f6e1072e76a98456904993432e59dbe1ba6e2060cac875117e9e18b92026-05-25T14:13:59+08:00patrickyangupdate infer launcher to avoid 0 value for csr. Update job engine to get actual task time for debug usage. improve compability to supoort arm
3e759441adb552be27579871112abf452ede026ba50891ffaf41e1b1ac54a8af52af57383b2426e012026-05-21T13:38:37+08:00patrickyangupdate log lock to time out while loop
46f95f35af17c11e7addfc22a6938dc4517d5be6451184d659f00224d1886d88e7e9970d4f3e9c03f2026-05-13T11:30:19+08:00patrickyangfix refresh bug. failed to refresh memory. failed to obtain shm lock
551184d659f00224d1886d88e7e9970d4f3e9c03f303dbe04ef7264dc82650ec37b81bdec60ff15972026-05-13T11:05:04+08:00patrickyangfix bugs for obtaining lock to refresh device list
6d4ebcf4f0f81edb56b5112925e196004af4fbf112c3bab6ed07c50b4ea344ddca468b631cb4541692026-04-16T18:14:22+08:00patrickyangupt slb cmd serialization bug
7d8ae5feb40becd16fa19222cec2815540097c979616337c570262b3ae1c90ed5c473b426e86484b42026-04-13T11:28:31+08:00patrickyangslightly improve job engine performance at high-freq job execution
83773869c7758d2bb0167daf20356bfb0e67bfb81c267183d399f345b6be343c705bf6bf0f97585e02026-04-08T11:05:35+08:00patrickyangrm clock freq adjustion
9c6f7c088d56ba4cbb4063fcd7819f64f0a195fd32d9019e79b11b8159f428111a6ea0a876669933c2026-03-26T10:21:33+08:00patrickyangadd more cli trace log
10b14a1cd6a6ef4f439394a3f3e0f7886a2b8576bf27b2c8ca75784a376628621e39e543af2a7339072026-03-25T10:38:13+08:00patrickyangadd more trace log. may slightly impact rt performance
11ba9526a6f191b663083b346173fc4c46370f51ba586ee6d97ac2af3193d3cb8d17dfb4b7d1e8546c2026-03-24T17:59:37+08:00patrickyangfixed trace bug cause core dump
12586ee6d97ac2af3193d3cb8d17dfb4b7d1e8546cc356c5e3ab09241845a524820a4ed95cdd405a702026-03-24T17:28:45+08:00patrickyangadd more trace log
1300c2f05d0a084d982118dd9ba9131e5c469164a9bc5ded3655a8516726abc80e1c704919525401582026-03-19T15:02:45+08:00patrickyangupt start job queue. improve safety for job entries less than 4
14ff15fff2eebdf4e64ed5192a1eea648fd6286a27c4138273a90df4fb2c1ea3a98e5ee44254e8b65c2026-03-13T11:36:14+08:00patrickyangalign emu end job queue mode
15f967dbe0fff392e22a2a0baa77a34ce2f946886aedb26bec507c7c16be4b658314d497171f9b39d52026-03-13T11:20:28+08:00patrickyangsupport get infer time consume via job end queue
16f52b519897fc32cace5fc878170ae22821975d5bf29a9ba4dd3f2471b305eb95e93e188fa84e45392026-02-04T18:00:35+08:00patrickyangupdate job engine for thread-safe
170eb11558ce0c54c42cbda06ea35cb9dcb5e200a18d6b20dab413486f5b48cb7f08862f6bd676b6642026-02-02T15:05:22+08:00patrickyangemergently fix job engine bug which happen at async mode trigger nullptr bahavior
18ef72e26a38ceb61f38681c12619b6c241b712b3ecd232cf8baab75884094ed2d3cc46f89cae8feb72026-01-30T11:00:32+08:00patrickyangnew feature: enable user to set up RT working mode:async or serial
19f37176737c84e28b8c8199a5eda1751fe1838ceb3178a5444a3d7e6d66aac727957d6e4dc7cd54f22026-01-04T14:58:49+08:00patrickyanguse queue to replace deque
205c676deb55589e7f336647b60a4f2fed5fd15735d0a569f5653dedc5af3797d9d26d57ce26f2bf612025-12-29T17:17:23+08:00patrickyangLarge update: add export macro for ABI stable and C/C++ compatible with extern C. Improve job engine performance
21d0a569f5653dedc5af3797d9d26d57ce26f2bf618c35e5ca78d5e7db9ab3545e9d173a40150609f02025-12-29T17:09:22+08:00patrickyangdisable assert function. improve performance by reducing atomic ops
228c35e5ca78d5e7db9ab3545e9d173a40150609f0a1a0173983a37b8adeddb0f9c2b2d1a84d88178b2025-12-29T17:02:55+08:00patrickyangimplement unbalanced thread safe btree. improve thread-safe map try-get function performance
23ed1eac8f2ee674e5bf80989271500056860e6a48b73d76da9b8a9355bbce22f51d2dbf7b35baefcf2025-12-25T10:23:08+08:00patrickyangimprove pcie driver performance for multi-threads env: Less mutex require
24df1842115d1cde562a9f12a7b3ca41d34bcf1b0cabc38426e113fe16957c21c80ba7a8d513e36be42025-12-22T18:07:13+08:00patrickyangdisable tracer. Update configure workflow for dumping ini file
256de68570ba0106ec54f2ee02a5ec3bb5b51af527fa244fe3764c2050bcb1a55dcca4507a55cd2bc82025-12-18T15:39:25+08:00patrickyangdisable trace to debug pld
262ef07a46f910fbc81798bd7da2ef965f8c92669b64cd9d2e6d0533ac4446e9eec3712f1eed60200e2025-12-18T14:53:38+08:00patrickyangfix cli for trace log
2764cd9d2e6d0533ac4446e9eec3712f1eed60200ef839d4bb436ab09e16255af21065cb50b269d2772025-12-18T14:52:36+08:00patrickyangupdate cli for trace log
2895e1f8d7eb0c9fa45a0b2661d7dd4fe9384e32ab2276ce96c1be01afb79c4d028144b027876209ad2025-12-17T15:47:00+08:00patrickyangfix crash issues caused by trace log for repair
292276ce96c1be01afb79c4d028144b027876209ad3f81729524367cc7ed00fc30d5d7ed065642e1892025-12-17T14:36:59+08:00patrickyangupdate device-level log for thread-safe
30d1577e8c50eae846a09cdf2d22df3a652646f148077358a1993148cd759199dd1010d48d057f7e672025-12-17T11:14:16+08:00patrickyang1st version for process-safe and thread safe file io
31077358a1993148cd759199dd1010d48d057f7e67de9677369c5c56f4b34e89e0c62976e1ba11ba3b2025-12-16T18:14:23+08:00patrickyangadd mutex for write log file
3228275427a6afd0df7c653edeaba4f417428572d768b3d318e59f2ad054a6d7984b224578755ae3e92025-12-16T14:39:36+08:00patrickyangupdate driver for atomic update device status
33651c30277da33cfcccf54afd4a9c60a8101f297b3b1dbf8613097c5af506858a9ddc35ff99fae2fb2025-12-16T10:39:16+08:00patrickyangimprovement about device status for atomic op
343b1dbf8613097c5af506858a9ddc35ff99fae2fb9f7d697a35aa94f508eb50827488ba4f4788bb752025-12-16T10:37:14+08:00patrickyangupdate shm for atomic op
355e48b29b8e950c5a261f6aa4c9ed49cd374eaa57adfc15ea9f96a6e2185131f4353ada7ee89cc66d2025-12-16T09:50:04+08:00patrickyangimprove job engine performance
369d86d11a715fb05a3db72be5d0db351c792ec3c6409efd4ac12b0a96bc1303fc5f6f54a7285df40f2025-12-12T16:02:37+08:00patrickyangdebug for pld multi-threads
377f7a9442273a90f010d9e4bd2a11bfc482c33ef8fa5f44f8cbf8b0db8229e6c738f6829630063ce12025-12-10T11:01:16+08:00patrickyangdisable worker threads for emulator. Disable sync function for emulator
383e7a6eb3a836152cc520659d887f4a44228d150d698949be8ac59c15f3234f7197d365ac69fdff642025-12-08T14:11:28+08:00patrickyangupdate logger for trace device under PLD MODE
3954ad251493f9975fb52e4c3f930aff4b6e2266b5c35b37b910cde49d75d88695872e629cefc70c2b2025-12-03T17:57:20+08:00patrickyangupdate logger for trace device usage
40554671db59fa65872fdb15459c44dd85e6722d3745b343a629065778b646dda13fb02062f01c782f2025-11-26T16:31:44+08:00patrickyangadd flock for process-safe
41e38e079581c27676aae8b9f371e8d0dc272a6563f531f19bd43fef72c8583dd031fcd89da4c115a02025-11-20T14:35:46+08:00ylsunusing u32 instead of int32 to store jobid in job engine
42ebdb30b320ad4a48a413c10b461df3c743ffd66d4df3255451d51bdd217c58d73e2b21cd38fb40672025-11-12T15:08:57+08:00patrickyangupdate Device Manager. support robust, shm repair and avoid deadlock
43d831a6025febb578a6fc32dc0569e42204c11e06b3a939c9e85acab4bfed8f3ce45700d530bf6e332025-11-10T11:27:52+08:00patrickyangupdate IPC for mutex restore when process killed
44897156b46ffed9e914cff53d0b8f61cbce62a027321da3e562974471bf50af7a5650f1dd60f8e50b2025-11-06T15:00:39+08:00patrickyangupdate python blocking infer
4538bb39104982540996d8b75a7215f7b2b1e1ffbf5ba82cad9463b59f01b4da67ffffecd27e5052422025-07-16T16:33:50+08:00patrickyangprovide better example org. Implement thread safe calrt check mechanism. Improve a little compiling eff
4619a4d49e34dcf9c6f6ecddb17dd4fda75cb68fdd103477d066967882d99907d7b23df1645015a3672025-07-16T10:11:48+08:00patrickyangre-write cmakelist. update job queue check function
4776bcd03bf7710451290136fff603600be8833fb0ab9337b567947cc11d6f756d80a7942216eeb2812025-06-11T10:29:27+08:00patrickyangtry mutex instead of atomic
4887623c2ebbd7ece7c7db6a945a86fa03a7114913aa234409e8731726c6b188a88c8b05ef3eb1b57d2025-06-11T09:09:55+08:00patrickyang[Do not pull]TEST ONLY. try to fix job id issues
49aa234409e8731726c6b188a88c8b05ef3eb1b57dca664598f16697aa1096961cf879c5ead891ed982025-06-10T18:29:15+08:00patrickyangfix main multi-threads bug
50ca664598f16697aa1096961cf879c5ead891ed986d52cd0dae0f99671c37058c019a0dc02dbc11122025-06-10T17:35:21+08:00patrickyangfix atomic op bug
516d52cd0dae0f99671c37058c019a0dc02dbc1112142f5f3b142336d4458777a8649cc02b308f4ebd2025-06-10T17:29:13+08:00patrickyangfix atomic op bug
52142f5f3b142336d4458777a8649cc02b308f4ebd6511a9d1b82c5e0cfe7d34df0f6d9f524d9ef67b2025-06-10T16:54:53+08:00patrickyangupdate job engine
536511a9d1b82c5e0cfe7d34df0f6d9f524d9ef67bfbc49d880e544c73bc789c1b66c4ba9534ffca992025-06-09T15:07:32+08:00patrickyangfix job engine bug, triggering sync issues under multi-threads env
54e934463f0408e2a238ce88d423cbc0bffadb0d1f3f1bc91d92b5bec94e0500232d9d314bdc8ddec42025-06-04T12:06:49+08:00patrickyangremove unused mutex. add more log msg
55dbfdb3da8d269f1927c2ffe7c5ed694ffd1bd424a0f9e78090831821676669bffe968123399ede202025-04-16T16:00:58+08:00patrickyangsupport shard thread safe map for high volumn concurrent or multi-thread performance
56a0f9e78090831821676669bffe968123399ede20cf943662338348b240d900c477016adee1d824df2025-04-16T16:00:20+08:00patrickyangsupport PCIE multi-channels with thread safe
57bacc578dbfeaa2e2c558b9905aff547810aefae47304485b61ef1118cabc91e0625581686aa15f0a2025-04-15T17:16:37+08:00patrickyangupdate multi-threads log logic
5892a46765b5bc32394e3473df56fcf45d6c6ab112ed8bc3cd2b0e65452b236d5480217d106ebbce292025-04-15T12:05:36+08:00patrickyangadd reserved mem info recorder. Add thread safe for multi-threads allocate mem. improve log system during parsing calbin and deploy. Implement callback function in Job class to release sync unit
59ed8bc3cd2b0e65452b236d5480217d106ebbce297b973a695ac7eb756efec5511eb3ea399d5000182025-04-14T16:40:24+08:00patrickyangadd thread safe for PCIE rd/wr
603b9814abc83fd0f4c115ec4b36164bfcecfa54dfba2a86d8dd3085274184b801c2cde049b6ffd0362025-04-11T17:36:12+08:00patrickyangupdate RAII for thread safe container. And notify for sendjob thread to stop working
6158634c589d30870f0bc6012bc9ef282858f60a25e784105634dcbd6da3adbfb8dd00de67bb244ecf2025-04-11T15:48:28+08:00patrickyangupdate job engine to new thraed safe container
62e56664b044ab808dea2194f731e8afa700438a3970b5ab1e964ef20a23ac5a595d274c1595a8a89a2025-04-11T13:49:17+08:00patrickyangimplement thread safe map
63814cbd422edbc4491d2cb9fe5acc551a4722325b5d658b2b36228fa084dff24139fc2571ce5063592025-04-09T14:39:14+08:00patrickyang[Do Not Update to mchp repo].fix multi thread bugs causing unable consequntly infer and get result
64646eaef7383175c14fd7944c6490773940d78103cb0f29d456a64e0913facee884948292547c1f8b2025-04-02T15:50:36+08:00ylsunupdate push job start queue generate
65eda04f64a76defe9f5b1e15f04e623cd7ca0cbceaa45692d886823173d547ed60dd1f4d8fb4fd86d2025-03-31T11:26:51+08:00patrickyangadd shutdown to job engine destructor. remove get allocator function. add constrain during parsing calbin
6627a978ae9743cbf6222ff025a4e96444c629fd242f0e0d67ff7a4960c5210324e2cb7e55ba95176a2025-03-31T10:05:41+08:00ylsunupdate job id
6737b0070493f5d55366a78486c07e10cf8a14e429aa45692d886823173d547ed60dd1f4d8fb4fd86d2025-03-28T19:35:04+08:00wantaoboupdate inferLauncher push job queue
6800b68bfa9c5dc4977ee4b8db2c399d12ed7ed7493110c8b875481630d761435fb367343bbe4d97192025-03-25T11:46:28+08:00ylsunadd condition variable to control waiting job done thread start
69c5afcc23bcc38b08e7d5e559008f6455aec1b66c6db45810ceacb91ff3f7ea5ca098d51c167e802d2025-03-19T16:01:20+08:00ylsunadd job engine
70f96d5d691e6b64f1c3f358cab90a76176de8be96b7d22adee6ea157135b0b69f0dd16e89741519652025-03-13T15:54:33+08:00patrickyangsupport push job start queue and poll job end queue
71b38237a36058f74b8320691c81029e8e23477976445e2814d0894e2441af1e8136d5ddbf12f2069d2025-03-06T17:39:32+08:00patrickyang[thread] improve thread safe
72bfd461bf1a0aee1306eb4d3509623effd4a69bb0411552190b01854f978292f9e360f880803c934b2025-02-24T17:09:01+08:00patrickyang[job engine] provide push job q and poll job q interface
73b8561e87f309f107328af7af2da4c25fde4382cf80e2aacafbd7fa2e7cfaeb971082ab961d78a7e62025-01-16T16:48:55+08:00patrickyangupdate calrt data struct; ping-pong sw queue