We maximize the transmit rate of device-to-device (D2D) in a reconfigurable intelligent surface (RIS) assisted D2D communication system by satisfying the unit-modulus constraints of reflectin elements, the transmit power limit of base station (BS) and the transmitter in a D2D pair. Since it is a non-convex optimization problem, the block coordinate descent (BCD) technique is adopted to decouple this problem into three subproblems. Then, the non-convex subproblems are approximated into convex problems by using successive convex approximation (SCA) and penalty convex-concave procedure (CCP) techniques. Finally, the optimal solution of original problem is obtained by iteratively optimizing the subproblems. Simulation results reveal the validity of the algorithm that we proposed to solve the optimization problem and illustrate the effectiveness of RIS to improve the transmit rate of the D2D pair even with hardware impairments.