Restrictions
- Before the system enters the hibernation mode, ensure that the running processes such as the AI inference and media data processing exit first. After the system is wakened up successfully, continue to process the services.
- Do not use the fork function to create multiple pyacl API caller processes, as this may lead to errors or cause processes to stop responding at runtime.
- Fork and functions that encapsulate fork, such as system and posix_spawnp, cannot be used during asynchronous memory operations such as acl.rt.memcpy_async and acl.rt.memset_async. Otherwise, unexpected errors such as process suspension may occur during process running.
- For creation APIs (such as acl.rt.create_stream, acl.rt.create_event, and acl.create_data_buffer), you are advised to call the corresponding destruction APIs (such as acl.rt.destroy_stream, acl.rt.destroy_event, and acl.destroy_data_buffer) in a timely manner after the resources are created and used. Otherwise, the program may be abnormal.
- After a destruction API (such as acl.rt.destroy_stream, acl.rt.destroy_event, acl.rt.free, and acl.destroy_data_buffer) is called, the released or destroyed resources cannot be used. You are advised to set related resources to invalid values (for example, None) after calling the destruction API.
- Atlas Training Series Product: For physical machines, a device supports a maximum of 64 user processes, and a host supports a maximum of 64 processes multiplied by the number of devices. For virtual machines, a device supports a maximum of 32 user processes, and a host supports a maximum of 32 processes multiplied by the number of devices.
- Atlas inference products: For physical machines, a device supports a maximum of 64 user processes, and a host supports a maximum of 64 processes multiplied by the number of devices. For virtual machines, a device supports a maximum of 32 user processes, and a host supports a maximum of 32 processes multiplied by the number of devices.
Atlas 200I/500 A2 inference product : A device supports a maximum of 64 user processes, and a host supports a maximum of 64 processes multiplied by the number of devices.- Atlas A2 Training Series Product/Atlas 300I A2 Inference Product: A device supports a maximum of 63 user processes, and a host supports a maximum of 63 processes multiplied by the number of devices.
Atlas A3 training product /Atlas A3 inference product : A device supports a maximum of 63 user processes, and a host supports a maximum of 63 processes multiplied by the number of devices.- Atlas 350 Accelerator Card: A device supports a maximum of 64 user processes, and a host supports a maximum of 64 processes multiplied by the number of devices.
- After memory is allocated using a memory allocation API (such as acl.rt.malloc and acl.media.dvpp_malloc), you are advised to call the acl.rt.memset or acl.rt.memset_async API to clear the memory (for example, acl.rt.memset(dev_buffer_ptr, dev_buffer_size, 0, dev_buffer_size)) before using the memory to ensure that no dirty data exists in the memory.
- In
Ascend RC form, if the memory allocation APIs such as acl.rt.malloc, acl.media.dvpp_malloc and hi_mpi_dvpp_malloc are called in the app logic, and the app runs on the device, the app will be suspended in the event of insufficient memory until such time that memory becomes available. You can activate certain OS configurations (for example, enable_oom_killer) to force the app to automatically exit when memory becomes insufficient.To activate enable_oom_killer, log in to the device, go to the /proc/sys/vm directory, and set enable_oom_killer as the root user. The following is a command example, where, 1 indicates activated, and 0 indicates deactivated.echo 1 > enable_oom_killer
Parent topic: Appendixes