For the tensorRT 8.0.1 test, I was just using TRTExec and loading the outputs. I have taken some of the tensorRT verbose logs from running the model and I see the following when I diff the model loading logs (where the first file is from a model that has a higher confidence, and the second is from a model where the unstable output seems to be causing a much lower confidence output)
< Layer(DepthwiseConvolution): (Unnamed Layer* 11) [Convolution] + (Unnamed Layer* 13) [Activation], Tactic: -1, 334[Float(96,112,112)] -> 337[Float(96,56,56)]
---
> Layer(Convolution): (Unnamed Layer* 11) [Convolution] + (Unnamed Layer* 13) [Activation], Tactic: 57, 334[Float(96,112,112)] -> 337[Float(96,56,56)]
23c22
< Layer(FusedConvActDirect): (Unnamed Layer* 59) [Convolution] + (Unnamed Layer* 61) [Activation], Tactic: 2097151, 382[Float(64,14,14)] -> 385[Float(384,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 59) [Convolution] + (Unnamed Layer* 61) [Activation], Tactic: 5177343, 382[Float(64,14,14)] -> 385[Float(384,14,14)]
26c25
< Layer(FusedConvActDirect): (Unnamed Layer* 68) [Convolution] + (Unnamed Layer* 70) [Activation], Tactic: 2097151, 391[Float(64,14,14)] -> 394[Float(384,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 68) [Convolution] + (Unnamed Layer* 70) [Activation], Tactic: 5177343, 391[Float(64,14,14)] -> 394[Float(384,14,14)]
29c28
< Layer(FusedConvActDirect): (Unnamed Layer* 77) [Convolution] + (Unnamed Layer* 79) [Activation], Tactic: 2097151, 400[Float(64,14,14)] -> 403[Float(384,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 77) [Convolution] + (Unnamed Layer* 79) [Activation], Tactic: 5177343, 400[Float(64,14,14)] -> 403[Float(384,14,14)]
32c31
< Layer(FusedConvActDirect): (Unnamed Layer* 86) [Convolution] + (Unnamed Layer* 88) [Activation], Tactic: 2097151, 409[Float(64,14,14)] -> 412[Float(384,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 86) [Convolution] + (Unnamed Layer* 88) [Activation], Tactic: 5177343, 409[Float(64,14,14)] -> 412[Float(384,14,14)]
35c34
< Layer(FusedConvActDirect): (Unnamed Layer* 94) [Convolution] + (Unnamed Layer* 96) [Activation], Tactic: 5898239, 417[Float(96,14,14)] -> 420[Float(576,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 94) [Convolution] + (Unnamed Layer* 96) [Activation], Tactic: 6291455, 417[Float(96,14,14)] -> 420[Float(576,14,14)]
37,38c36,37
< Layer(Convolution): (Unnamed Layer* 100) [Convolution] + (Unnamed Layer* 102) [ElementWise], Tactic: 0, 423[Float(576,14,14)], 417[Float(96,14,14)] -> 426[Float(96,14,14)]
< Layer(FusedConvActDirect): (Unnamed Layer* 103) [Convolution] + (Unnamed Layer* 105) [Activation], Tactic: 5898239, 426[Float(96,14,14)] -> 429[Float(576,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 100) [Convolution] + (Unnamed Layer* 102) [ElementWise], Tactic: 57, 423[Float(576,14,14)], 417[Float(96,14,14)] -> 426[Float(96,14,14)]
> Layer(FusedConvActDirect): (Unnamed Layer* 103) [Convolution] + (Unnamed Layer* 105) [Activation], Tactic: 6291455, 426[Float(96,14,14)] -> 429[Float(576,14,14)]
40,41c39,40
< Layer(Convolution): (Unnamed Layer* 109) [Convolution] + (Unnamed Layer* 111) [ElementWise], Tactic: 0, 432[Float(576,14,14)], 426[Float(96,14,14)] -> 435[Float(96,14,14)]
< Layer(FusedConvActDirect): (Unnamed Layer* 112) [Convolution] + (Unnamed Layer* 114) [Activation], Tactic: 5898239, 435[Float(96,14,14)] -> 438[Float(576,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 109) [Convolution] + (Unnamed Layer* 111) [ElementWise], Tactic: 57, 432[Float(576,14,14)], 426[Float(96,14,14)] -> 435[Float(96,14,14)]
> Layer(FusedConvActDirect): (Unnamed Layer* 112) [Convolution] + (Unnamed Layer* 114) [Activation], Tactic: 6291455, 435[Float(96,14,14)] -> 438[Float(576,14,14)]
44c43
< Layer(FusedConvActDirect): (Unnamed Layer* 120) [Convolution] + (Unnamed Layer* 122) [Activation], Tactic: 4259839, 443[Float(160,7,7)] -> 446[Float(960,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 120) [Convolution] + (Unnamed Layer* 122) [Activation], Tactic: 2097151, 443[Float(160,7,7)] -> 446[Float(960,7,7)]
46,47c45,46
< Layer(Convolution): (Unnamed Layer* 126) [Convolution] + (Unnamed Layer* 128) [ElementWise], Tactic: 0, 449[Float(960,7,7)], 443[Float(160,7,7)] -> 452[Float(160,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 129) [Convolution] + (Unnamed Layer* 131) [Activation], Tactic: 4259839, 452[Float(160,7,7)] -> 455[Float(960,7,7)]
---
> Layer(Convolution): (Unnamed Layer* 126) [Convolution] + (Unnamed Layer* 128) [ElementWise], Tactic: 57, 449[Float(960,7,7)], 443[Float(160,7,7)] -> 452[Float(160,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 129) [Convolution] + (Unnamed Layer* 131) [Activation], Tactic: 2097151, 452[Float(160,7,7)] -> 455[Float(960,7,7)]
49,50c48,49
< Layer(Convolution): (Unnamed Layer* 135) [Convolution] + (Unnamed Layer* 137) [ElementWise], Tactic: 0, 458[Float(960,7,7)], 452[Float(160,7,7)] -> 461[Float(160,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 138) [Convolution] + (Unnamed Layer* 140) [Activation], Tactic: 4259839, 461[Float(160,7,7)] -> 464[Float(960,7,7)]
---
> Layer(Convolution): (Unnamed Layer* 135) [Convolution] + (Unnamed Layer* 137) [ElementWise], Tactic: 57, 458[Float(960,7,7)], 452[Float(160,7,7)] -> 461[Float(160,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 138) [Convolution] + (Unnamed Layer* 140) [Activation], Tactic: 2097151, 461[Float(160,7,7)] -> 464[Float(960,7,7)]
53c52
< Layer(FusedConvActDirect): (Unnamed Layer* 146) [Convolution] + (Unnamed Layer* 148) [Activation], Tactic: 6750207, 469[Float(320,7,7)] -> 472[Float(1280,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 146) [Convolution] + (Unnamed Layer* 148) [Activation], Tactic: 4915199, 469[Float(320,7,7)] -> 472[Float(1280,7,7)]
56c55
< Layer(FusedConvActDirect): (Unnamed Layer* 152) [Convolution] + (Unnamed Layer* 153) [Activation], Tactic: 2097151, 475[Float(320,7,7)] -> 477[Float(160,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 152) [Convolution] + (Unnamed Layer* 153) [Activation], Tactic: 7012351, 475[Float(320,7,7)] -> 477[Float(160,7,7)]
The main difference is that some tactics are difference, but I noticed that Layer 11 was implemented as a Depthwise Convolution in one run vs a regular Convolution in another run
When I run the same test again, I also see that there is also 1 place where there is a different layer implementation selected (Convolution vs scudnn). Could these differences cause the precision error I am observing?
4490c4503
< Layer(Convolution): (Unnamed Layer* 22) [Convolution] + (Unnamed Layer* 24) [ElementWise], Tactic: 0, 345[Float(144,56,56)], 339[Float(24,56,56)] -> 348[Float(24,56,56)]
---
> Layer(scudnn): (Unnamed Layer* 22) [Convolution] + (Unnamed Layer* 24) [ElementWise], Tactic: -4420849921117327522, 345[Float(144,56,56)], 339[Float(24,56,56)] -> 348[Float(24,56,56)]
4493c4506
< Layer(FusedConvActDirect): (Unnamed Layer* 31) [Convolution], Tactic: 1179647, 354[Float(144,28,28)] -> 356[Float(32,28,28)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 31) [Convolution], Tactic: 4587519, 354[Float(144,28,28)] -> 356[Float(32,28,28)]
4496c4509
< Layer(Convolution): (Unnamed Layer* 39) [Convolution] + (Unnamed Layer* 41) [ElementWise], Tactic: 0, 362[Float(192,28,28)], 356[Float(32,28,28)] -> 365[Float(32,28,28)]
---
> Layer(Convolution): (Unnamed Layer* 39) [Convolution] + (Unnamed Layer* 41) [ElementWise], Tactic: 57, 362[Float(192,28,28)], 356[Float(32,28,28)] -> 365[Float(32,28,28)]
4499c4512
< Layer(Convolution): (Unnamed Layer* 48) [Convolution] + (Unnamed Layer* 50) [ElementWise], Tactic: 0, 371[Float(192,28,28)], 365[Float(32,28,28)] -> 374[Float(32,28,28)]
---
> Layer(Convolution): (Unnamed Layer* 48) [Convolution] + (Unnamed Layer* 50) [ElementWise], Tactic: 57, 371[Float(192,28,28)], 365[Float(32,28,28)] -> 374[Float(32,28,28)]
4502c4515
< Layer(FusedConvActDirect): (Unnamed Layer* 57) [Convolution], Tactic: 6750207, 380[Float(192,14,14)] -> 382[Float(64,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 57) [Convolution], Tactic: 2097151, 380[Float(192,14,14)] -> 382[Float(64,14,14)]
4505c4518
< Layer(Convolution): (Unnamed Layer* 65) [Convolution] + (Unnamed Layer* 67) [ElementWise], Tactic: 0, 388[Float(384,14,14)], 382[Float(64,14,14)] -> 391[Float(64,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 65) [Convolution] + (Unnamed Layer* 67) [ElementWise], Tactic: 57, 388[Float(384,14,14)], 382[Float(64,14,14)] -> 391[Float(64,14,14)]
4508c4521
< Layer(Convolution): (Unnamed Layer* 74) [Convolution] + (Unnamed Layer* 76) [ElementWise], Tactic: 0, 397[Float(384,14,14)], 391[Float(64,14,14)] -> 400[Float(64,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 74) [Convolution] + (Unnamed Layer* 76) [ElementWise], Tactic: 57, 397[Float(384,14,14)], 391[Float(64,14,14)] -> 400[Float(64,14,14)]
4511c4524
< Layer(Convolution): (Unnamed Layer* 83) [Convolution] + (Unnamed Layer* 85) [ElementWise], Tactic: 0, 406[Float(384,14,14)], 400[Float(64,14,14)] -> 409[Float(64,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 83) [Convolution] + (Unnamed Layer* 85) [ElementWise], Tactic: 57, 406[Float(384,14,14)], 400[Float(64,14,14)] -> 409[Float(64,14,14)]
4515c4528
< Layer(FusedConvActDirect): (Unnamed Layer* 94) [Convolution] + (Unnamed Layer* 96) [Activation], Tactic: 5898239, 417[Float(96,14,14)] -> 420[Float(576,14,14)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 94) [Convolution] + (Unnamed Layer* 96) [Activation], Tactic: 7012351, 417[Float(96,14,14)] -> 420[Float(576,14,14)]
4517,4518c4530,4531
< Layer(Convolution): (Unnamed Layer* 100) [Convolution] + (Unnamed Layer* 102) [ElementWise], Tactic: 0, 423[Float(576,14,14)], 417[Float(96,14,14)] -> 426[Float(96,14,14)]
< Layer(FusedConvActDirect): (Unnamed Layer* 103) [Convolution] + (Unnamed Layer* 105) [Activation], Tactic: 5898239, 426[Float(96,14,14)] -> 429[Float(576,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 100) [Convolution] + (Unnamed Layer* 102) [ElementWise], Tactic: 57, 423[Float(576,14,14)], 417[Float(96,14,14)] -> 426[Float(96,14,14)]
> Layer(FusedConvActDirect): (Unnamed Layer* 103) [Convolution] + (Unnamed Layer* 105) [Activation], Tactic: 7012351, 426[Float(96,14,14)] -> 429[Float(576,14,14)]
4520,4521c4533,4534
< Layer(Convolution): (Unnamed Layer* 109) [Convolution] + (Unnamed Layer* 111) [ElementWise], Tactic: 0, 432[Float(576,14,14)], 426[Float(96,14,14)] -> 435[Float(96,14,14)]
< Layer(FusedConvActDirect): (Unnamed Layer* 112) [Convolution] + (Unnamed Layer* 114) [Activation], Tactic: 5898239, 435[Float(96,14,14)] -> 438[Float(576,14,14)]
---
> Layer(Convolution): (Unnamed Layer* 109) [Convolution] + (Unnamed Layer* 111) [ElementWise], Tactic: 57, 432[Float(576,14,14)], 426[Float(96,14,14)] -> 435[Float(96,14,14)]
> Layer(FusedConvActDirect): (Unnamed Layer* 112) [Convolution] + (Unnamed Layer* 114) [Activation], Tactic: 7012351, 435[Float(96,14,14)] -> 438[Float(576,14,14)]
4523,4524c4536,4537
< Layer(FusedConvActDirect): (Unnamed Layer* 118) [Convolution], Tactic: 7012351, 441[Float(576,7,7)] -> 443[Float(160,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 120) [Convolution] + (Unnamed Layer* 122) [Activation], Tactic: 4259839, 443[Float(160,7,7)] -> 446[Float(960,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 118) [Convolution], Tactic: 2097151, 441[Float(576,7,7)] -> 443[Float(160,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 120) [Convolution] + (Unnamed Layer* 122) [Activation], Tactic: 1179647, 443[Float(160,7,7)] -> 446[Float(960,7,7)]
4526,4527c4539,4540
< Layer(Convolution): (Unnamed Layer* 126) [Convolution] + (Unnamed Layer* 128) [ElementWise], Tactic: 0, 449[Float(960,7,7)], 443[Float(160,7,7)] -> 452[Float(160,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 129) [Convolution] + (Unnamed Layer* 131) [Activation], Tactic: 4259839, 452[Float(160,7,7)] -> 455[Float(960,7,7)]
---
> Layer(Convolution): (Unnamed Layer* 126) [Convolution] + (Unnamed Layer* 128) [ElementWise], Tactic: 57, 449[Float(960,7,7)], 443[Float(160,7,7)] -> 452[Float(160,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 129) [Convolution] + (Unnamed Layer* 131) [Activation], Tactic: 1179647, 452[Float(160,7,7)] -> 455[Float(960,7,7)]
4529,4530c4542,4543
< Layer(Convolution): (Unnamed Layer* 135) [Convolution] + (Unnamed Layer* 137) [ElementWise], Tactic: 0, 458[Float(960,7,7)], 452[Float(160,7,7)] -> 461[Float(160,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 138) [Convolution] + (Unnamed Layer* 140) [Activation], Tactic: 4259839, 461[Float(160,7,7)] -> 464[Float(960,7,7)]
---
> Layer(Convolution): (Unnamed Layer* 135) [Convolution] + (Unnamed Layer* 137) [ElementWise], Tactic: 57, 458[Float(960,7,7)], 452[Float(160,7,7)] -> 461[Float(160,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 138) [Convolution] + (Unnamed Layer* 140) [Activation], Tactic: 1179647, 461[Float(160,7,7)] -> 464[Float(960,7,7)]
4532c4545
< Layer(FusedConvActDirect): (Unnamed Layer* 144) [Convolution], Tactic: 7012351, 467[Float(960,7,7)] -> 469[Float(320,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 144) [Convolution], Tactic: 2097151, 467[Float(960,7,7)] -> 469[Float(320,7,7)]
4535,4536c4548,4549
< Layer(FusedConvActDirect): (Unnamed Layer* 150) [Convolution] + (Unnamed Layer* 151) [Activation], Tactic: 7012351, 473[Float(1280,7,7)] -> 475[Float(320,7,7)]
< Layer(FusedConvActDirect): (Unnamed Layer* 152) [Convolution] + (Unnamed Layer* 153) [Activation], Tactic: 2097151, 475[Float(320,7,7)] -> 477[Float(160,7,7)]
---
> Layer(FusedConvActDirect): (Unnamed Layer* 150) [Convolution] + (Unnamed Layer* 151) [Activation], Tactic: 2097151, 473[Float(1280,7,7)] -> 475[Float(320,7,7)]
> Layer(FusedConvActDirect): (Unnamed Layer* 152) [Convolution] + (Unnamed Layer* 153) [Activation], Tactic: 7012351, 475[Float(320,7,7)] -> 477[Float(160,7,7)]