The following issues were found

benchmarks/distributed/rpc/parameter_server/data/__init__.py
2 issues
Unable to import '__init__.DummyData'
Error

Line: 1 Column: 1

              from .DummyData import DummyData

data_map = {
    "DummyData": DummyData
}

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from .DummyData import DummyData

data_map = {
    "DummyData": DummyData
}

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/models/__init__.py
2 issues
Unable to import '__init__.DummyModel'
Error

Line: 1 Column: 1

              from .DummyModel import DummyModel

model_map = {
    "DummyModel": DummyModel
}

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from .DummyModel import DummyModel

model_map = {
    "DummyModel": DummyModel
}

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/server/__init__.py
2 issues
Unable to import '__init__.server'
Error

Line: 1 Column: 1

              from .server import AverageBatchParameterServer, AverageParameterServer

server_map = {
    "AverageParameterServer": AverageParameterServer,
    "AverageBatchParameterServer": AverageBatchParameterServer
}

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from .server import AverageBatchParameterServer, AverageParameterServer

server_map = {
    "AverageParameterServer": AverageParameterServer,
    "AverageBatchParameterServer": AverageBatchParameterServer
}

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/trainer/criterions.py
2 issues
Unable to import 'torch.nn'
Error

Line: 1 Column: 1

              import torch.nn as nn


def cel(rank):
    r"""A function that creates a CrossEntropyLoss
    criterion for training.
    Args:
        rank (int): worker rank
    """

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import torch.nn as nn


def cel(rank):
    r"""A function that creates a CrossEntropyLoss
    criterion for training.
    Args:
        rank (int): worker rank
    """

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/trainer/hook_states.py
2 issues
Missing class docstring
Error

Line: 1 Column: 1

              class BasicHookState:

    def __init__(self, cref, process_group):
        r"""
        A class that holds state information that is needed by the communication hook
        during the training algorithm.
        Args:
            cref (DdpTrainer): reference to the self keyword of the trainer instance
            process_group (ProcessGroup): distributed process group

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              class BasicHookState:

    def __init__(self, cref, process_group):
        r"""
        A class that holds state information that is needed by the communication hook
        during the training algorithm.
        Args:
            cref (DdpTrainer): reference to the self keyword of the trainer instance
            process_group (ProcessGroup): distributed process group

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/trainer/iteration_steps.py
2 issues
Too many arguments (8/5)
Error

Line: 1 Column: 1

              def basic_iteration_step(self, ddp_model, criterion, optimizer, hook_state, epoch, index, batch):
    r"""
    A function that performs an iteration of training.
    Args:
        ddp_model (nn.Module): distributed data parallel model
        criterion (nn.Module): loss function to measure model
        optimizer (optim.Optimizer): updates model parameters
        hook_state (object): ddp communication hook state object
        epoch (int): index of pass through the data

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              def basic_iteration_step(self, ddp_model, criterion, optimizer, hook_state, epoch, index, batch):
    r"""
    A function that performs an iteration of training.
    Args:
        ddp_model (nn.Module): distributed data parallel model
        criterion (nn.Module): loss function to measure model
        optimizer (optim.Optimizer): updates model parameters
        hook_state (object): ddp communication hook state object
        epoch (int): index of pass through the data

            

Reported by Pylint.

benchmarks/distributed/rpc/parameter_server/trainer/preprocess_data.py
2 issues
Missing module docstring
Error

Line: 1 Column: 1

              def preprocess_dummy_data(rank, data):
    r"""
    A function that moves the data from CPU to GPU
    for DummyData class.
    Args:
        rank (int): worker rank
        data (list): training examples
    """
    for i in range(len(data)):

            

Reported by Pylint.

Consider using enumerate instead of iterating with range and len
Error

Line: 9 Column: 5

                      rank (int): worker rank
        data (list): training examples
    """
    for i in range(len(data)):
        data[i][0] = data[i][0].cuda(rank)
        data[i][1] = data[i][1].cuda(rank)
    return data

            

Reported by Pylint.

benchmarks/operator_benchmark/pt_extension/setup.py
2 issues
Unable to import 'torch.utils.cpp_extension'
Error

Line: 2 Column: 1

              from setuptools import setup
from torch.utils.cpp_extension import CppExtension, BuildExtension

setup(name='benchmark_cpp_extension',
      ext_modules=[CppExtension('benchmark_cpp_extension', ['extension.cpp'])],
      cmdclass={'build_ext': BuildExtension})

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from setuptools import setup
from torch.utils.cpp_extension import CppExtension, BuildExtension

setup(name='benchmark_cpp_extension',
      ext_modules=[CppExtension('benchmark_cpp_extension', ['extension.cpp'])],
      cmdclass={'build_ext': BuildExtension})

            

Reported by Pylint.

benchmarks/static_runtime/test_utils.cc
2 issues
equal - Function does not check the second iterator for over-read conditions
Security

Line: 117 Column: 37 CWE codes: 126
Suggestion: This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it

                          /*atol*/ 1e-08,
            use_equalnan));
      } else {
        EXPECT_TRUE(l[i].toTensor().equal(r[i].toTensor()));
      }
    }
  }
}


            

Reported by FlawFinder.

equal - Function does not check the second iterator for over-read conditions
Security

Line: 140 Column: 37 CWE codes: 126
Suggestion: This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it

                        /*atol*/ 1e-08,
          use_equalnan));
    } else {
      EXPECT_TRUE(expect.toTensor().equal(actual.toTensor()));
    }
    return;
  } else if (expect.isTuple()) {
    EXPECT_TRUE(actual.isTuple());
    auto lhs = expect.toTuple()->elements();

            

Reported by FlawFinder.

c10/core/CPUAllocator.cpp
2 issues
memcpy - Does not check for buffer overflows when copying to destination
Security

Line: 37 Column: 5 CWE codes: 120
Suggestion: Make sure destination can always hold the source data

                  data_i64[i] = kJunkPattern64;
  }
  if (remaining_bytes > 0) {
    memcpy(data_i64 + int64_count, &kJunkPattern64, remaining_bytes);
  }
}

void* alloc_cpu(size_t nbytes) {
  if (nbytes == 0) {

            

Reported by FlawFinder.

memalign - On some systems (though not Linux-based systems) an attempt to free() results from memalign() may fail. This may, on a few systems, be exploitable. Also note that memalign() may not check that the boundary parameter is correct
Security

Line: 55 Column: 10 CWE codes: 676
Suggestion: Use posix_memalign instead (defined in POSIX's 1003.1d). Don't switch to valloc(); it is marked as obsolete in BSD 4.3, as legacy in SUSv2, and is no longer defined in SUSv3. In some cases, malloc()'s alignment may be sufficient

                // NOLINTNEXTLINE(cppcoreguidelines-init-variables)
  void* data;
#ifdef __ANDROID__
  data = memalign(gAlignment, nbytes);
#elif defined(_MSC_VER)
  data = _aligned_malloc(nbytes, gAlignment);
#else
  int err = posix_memalign(&data, gAlignment, nbytes);
  if (err != 0) {

            

Reported by FlawFinder.