(코드 탐색) RTOS (realtime OS)
- Linux + real-time kernel
- kernel build configured for real-time use
- isolating cores
- disabling certain power-management/idle features
- tuning interrupt handling
- aim for
- lower latency
- more deterministic scheduling/interrupt behavior
jetson code example
# built-in network
net = inference.segNet("fcn-resnet18-voc-320x320", net_argv)
# create buffer manager
buffers = segmentationBuffers(net, buffer_args)
# set input source
input_URI = "rtsp://jetson_emulator:554/segNet/sofa_cam/4k"
input = utils.videoSource(input_URI, None)
img = input.Capture()
# allocate buffer
buffers.Alloc(img.shape, img.format)
# run network
net.Process(img, ignore_class="void")
# generate the overlay
if buffers.overlay:
net.Overlay(buffers.overlay, filter_mode=args.filter_mode)
# generate the mask
if buffers.mask:
net.Mask(buffers.mask, filter_mode=args.filter_mode)
# composite the images
if buffers.composite:
cudaOverlay(buffers.overlay, buffers.composite, 0, 0)
cudaOverlay(buffers.mask, buffers.composite, buffers.overlay.width, 0)
# render the output image
output.Render(buffers.output)
# update the title bar
output.SetStatus("{:s} | Network {:.0f} FPS".format(args.network, net.GetNetworkFPS()))
# print out performance info
cudaDeviceSynchronize()
net.PrintProfilerTimes()
# compute segmentation class stats
if args.stats:
buffers.ComputeStats()
# exit on input/output EOS
if not input.IsStreaming() or not output.IsStreaming():
break