Commit 80bc70c
authored
Fix dense --> sparse conversion in
## Description
Replace the `pcmToTensor`-based `make_sparse_from_dense` helper with a
direct scan of the raw numpy buffer. This makes use of the new
`sparse_binary_matrix` type. This avoids an intermediate dense tensor
copy, so peak memory is just the caller's dense array plus the sparse
output. The inner loop always runs in the contiguous memory direction,
so both layouts are cache-friendly.
Update the Fortran-order test to reflect that F-order input is now
handled correctly rather than rejected. Therefore, I removed the `
test_decoder_initialization_with_error()` test and replaced it with a
new test to verify it works correctly.
## Runtime / performance impact
If the user is providing dense PCMs, this allows them to use larger
dense PCMs before running out of memory on their system by avoiding
unnecessary allocations and copies.
Signed-off-by: Ben Howe <bhowe@nvidia.com>get_decoder to avoid redundant copies (#589)1 parent e822984 commit 80bc70c
2 files changed
Lines changed: 60 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
93 | 141 | | |
94 | 142 | | |
95 | 143 | | |
| |||
724 | 772 | | |
725 | 773 | | |
726 | 774 | | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | 775 | | |
735 | 776 | | |
736 | 777 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
37 | 44 | | |
38 | 45 | | |
39 | 46 | | |
| |||
0 commit comments